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