Hmmm. Vidim, ze Metro se dostalo opravdu daleko. Kdysi pred lety jsem posilani
zprav o desitkach GB pres SOAP With Attachments resil rucne (no, skoro rucne,
na zakladni processing jsem pouzil existujici prutokove knihovnicky), ale toto
je opravdu jiny salek kavy.
------------ Původní zpráva ------------
Od: Potociar Marek <marek.potoc...@sun.com>
Předmět: Re: Prenos velkych suborov do z klienta do webservice
Datum: 07.4.2009 13:39:17
----------------------------------------
Dobry den,
ak pouzivate Metro (https://metro.dev.java.net/), mozete pouzit MTOM v
kombinacii so streamovanim velkych attachmentov.
V podstate vsetko co potrebujete na strane servera spravit je pridat
@MTOM a @XmlMimeType("application/octet-stream") anotacie:
@MTOM
@WebService
@Stateless
public class FooWebService {
@WebMethod
public String uploadFileAsAttachment (
@WebParam (name = "fileName") String fileName,
@WebParam (name = "fileContent")
@XmlMimeType("application/octet-stream") DataHandler
fileContent ) throws IOException
{
...
}
Ostatne uz Meto zariadi automaticky. Viac informacii na:
https://jax-ws.dev.java.net/guide/Large_Attachments.html
S pozdravom,
Marek Potociar
On 6.4.2009, at 15:28, Dusan Zatkovsky wrote:
> Ahoj.
>
> Snazim sa vyriesit $subj.
>
> Zatial som skusil 2 cesty, ktore som vygooglil. Pomocou ws
> attachment v jax ws
> a axis2.
>
> jaxws vyzeralo nejak takto:
>
> @WebService ()
> @Stateless ()
> public class FooWebService {
>
> @WebMethod
> public String uploadFileAsAttachment (
> @WebParam (name = "fileName") String fileName,
> @WebParam (name = "fileContent")
> @XmlAttachmentRef () DataHandler fileContent ) throws
> IOException
> {
> ...
> }
>
>
> Pre axis2 som upravil saopwithattachments example z
> http://ws.apache.org/axis2/1_4_1/userguide-samples.html#others.
>
> Oba priklady som vyskusal s GlassFish2, oba skoncili pri prenose /
> etc/passwd
> uspesne, ale pri prenose vacsich suborov ( radovo GB, viac ako
> dostupna
> RAM+swap ) po kratkej chvili na chybu suvisiaci s nedostatkom pamati.
>
> Je este nejaka ina cesta, ako prenasat subory pomocou WS? Povodne
> som totiz
> navrhoval, ze klient si s ws iba pokeca a samotny prenos obstara
> tretia
> strana, pravdepodobne nejaky ssl socket, ktoremu da webservica echo o
> klientovi a nejake autorizacne data, ktorymi sa potom klient ohlasi.
> Problem
> je, ze je to pre mna dalsi overhead, spojeny mimo ineho aj s vecami
> s javou
> nesuvisiacimi ( povolit dalsie porty u klienta a tak podobne ).
>
> Diky.
>
> --
> Dusan
Oto 'tapik' Buchta, ta...@buchtovi.cz