Prenos velkych suborov do z klienta do webservice
Robert Novotny
robert.novotny na upjs.sk
Pondělí Duben 6 16:20:07 CEST 2009
Problem s beznymi WS je ten, ze vsetky data idu v sprave.
Ak pouzivate SOAP over HTTP (klasicky sposob), tak to znamena, ze vas
obrovsky
subor pride ako jedna velka HTTP poziadavka, v ktorej je mnohomegove XML.
A to mnohomegove XML treba naparsovat a podobne, co je mimo pamatovych
moznosti.
Cim chcem povedat len to, ze vidim problem, ale riesenie Vam neporadim
(v pripade HTTP je to podla mojich vedomosti priam nemozne).
On Mon, 06 Apr 2009 15:28:37 +0200, Dusan Zatkovsky <msk.conf na gmail.com>
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.
>
--
Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
Další informace o konferenci Konference