Prenos velkych suborov do z klienta do webservice

Potociar Marek Marek.Potociar na Sun.COM
Úterý Duben 7 13:38:51 CEST 2009


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




Další informace o konferenci Konference