Detelin, You saved my day. I will test it tomorrow and let you know the result.
Thanks a lot. Detelin Yordanov wrote: > > Hello, > I have experienced the same problem - the reason is that in your client > stub the message context is cleaned up > right after building the response object, e.g.: > > _operationClient.execute(true); > ... > java.lang.Object object = fromOM( ...); > _messageContext.getTransportOut().getSender().cleanup(_messageContext); > > return XXX; > > The cleanup closes the stream that the response has been read from, so > that > if you try to read the attachments later on (after returning from the > stub's > method) you will get the mentioned exception. > > I do not know whether you can instruct ADB to read the attachments for > you, > the simplest workaround if you just have one stub > is to insert code that will read the attachments before the message > context > gets cleaned up. > > Regards, > Detelin > > > > On Tue, Apr 1, 2008 at 4:52 PM, ndthuy <[EMAIL PROTECTED]> wrote: > >> >> Hi Thilina, >> >> After taking a look at those articles, I am able to upload the file >> without >> any problem. But when I download the file, I received this error: >> >> Exception in thread "main" org.apache.axiom.om.OMException: >> javax.mail.MessagingException: Error in input stream; >> nested exception is: >> java.io.IOException: Attempted read on closed stream. >> at >> org.apache.axiom.attachments.Attachments.getPart(Attachments.java:602) >> at >> >> org.apache.axiom.attachments.Attachments.getNextPartDataHandler(Attachments.java:462) >> at >> >> org.apache.axiom.attachments.Attachments.getDataHandler(Attachments.java:278) >> at >> >> org.apache.axis2.context.MessageContext.getAttachment(MessageContext.java:1623) >> at >> >> com.cvg.ap.service.publicservices.impl.APContentManagementServicesStub.fetchContentFile(APContentManagementServicesStub.java:810) >> at >> >> com.cvg.ap.service.publicservices.impl.APContentManagementServicesImpl.fetchContentFile(APContentManagementServicesImpl.java:256) >> at >> >> com.cvg.ap.service.publicservices.impl.APContentManagementServicesImpl.main(APContentManagementServicesImpl.java:463) >> Caused by: javax.mail.MessagingException: Error in input stream; >> nested exception is: >> java.io.IOException: Attempted read on closed stream. >> at >> javax.mail.internet.InternetHeaders.load(InternetHeaders.java:142) >> at >> javax.mail.internet.InternetHeaders.<init>(InternetHeaders.java:93) >> at javax.mail.internet.MimeBodyPart.<init>(MimeBodyPart.java:124) >> at >> org.apache.axiom.attachments.PartOnMemory.<init>(PartOnMemory.java:34) >> at >> org.apache.axiom.attachments.Attachments.getPart(Attachments.java:598) >> ... 6 more >> >> >> This is the soap message when I upload and download: >> >> >> </soapenv:Envelope>--MIMEBoundaryurn_uuid_1ADD9EC725995A3FD11206998815387Content-Type: >> application/octet-streamContent-Transfer-Encoding: binaryContent-ID: >> <urn:uuid:1ADD9EC725995A3FD11206998814743>/* Pogue.cs - Custom >> Rogue class3a--MIMEBoundaryurn_uuid_1ADD9EC725995A3FD11206998815387--0 >> >> This is soap message when I download: >> >> --MIMEBoundaryurn_uuid_5042108D598DCCE8AE1206999131913 >> 7e8 >> >> Content-Type: application/octet-stream >> Content-Transfer-Encoding: binary >> Content-ID: >> <urn:uuid:5042108D598DCCE8AE1206999117974>/* Pogue.cs - Custom >> Rogue class >> 38 >> >> --MIMEBoundaryurn_uuid_5042108D598DCCE8AE1206999131913 >> 2 >> -- >> 0 >> >> Do you think it is because the way it prepares the SOAP message on server >> side ? >> >> Thanks. >> >> >> >> >> Thilina Gunarathne wrote: >> > >> > Hi, >> > I would have a WSDL with a string return field (or a complex type >> > containing a string element) and would assign the content-id to that >> > string. >> > >> > You can have a look at the following articles to figure out how to add >> > the attachment in the service implementation class.. >> > http://wso2.org/library/1675 >> > http://wso2.org/library/1148 >> > >> > String contentId = messageContext.addAttachment(dataHandler); >> > >> > thanks, >> > Thilina >> > >> > >> > On Mon, Mar 31, 2008 at 11:14 AM, ndthuy <[EMAIL PROTECTED]> wrote: >> >> >> >> Thanks Thilina, >> >> >> >> I was able to modify according to your suggestion to upload the file >> >> using >> >> ADB with SwA. >> >> >> >> But for the dowload using ADB with SwA, how do we modify the SOAP >> >> message to >> >> attach the binary data ? >> >> Do we have to modify in invokeBusinessLogic(...) function ? >> >> >> >> Thanks. >> >> >> >> >> >> >> >> Thilina Gunarathne wrote: >> >> > >> >> > Hi, >> >> > You cannot generate WSDL with the knowledge of SwA in them.. AFAIK >> >> > there isn't a standard way to mention SwA attachments in WSDL.. ADB >> >> > does not support SwA directly.. >> >> > >> >> > What you can do in the server side is to have your method signature >> >> > take in an String which will be the content-id of the attachment, >> then >> >> > retrieve your attachment from the messageContext manually using >> it... >> >> > Have a look at [1] & [2].. >> >> > >> >> > Your following method will result in an MTOM WSDL, where >> dataHandler >> >> > will get bound to an base64Binary element. >> >> > >> >> >> addContentFile(String userID, String password, >> >> >> String serviceID, DataHandler dataHandler, >> >> >> String relAddFilepathName, String >> >> contentType, >> >> >> String source) >> >> > >> >> > thanks, >> >> > Thilina >> >> > >> >> > [1] Using SOAP with Attachments in Apache Axis2 - >> >> > http://wso2.org/library/1148 >> >> > [2] Downloading a Binary File from a Web Service using Axis2 and >> SOAP >> >> > with Attachments - http://wso2.org/library/1675 >> >> > >> >> >> >> >> >> How do I write a wsdl for it so I can generate the client and >> server >> >> >> using >> >> >> ADB. >> >> >> >> >> >> >> >> >> >> >> >> Thanks >> >> >> -- >> >> >> View this message in context: >> >> >> >> >> >> http://www.nabble.com/Using-SWA-with-ADB-in-axis2-tp16335414p16335414.html >> >> >> Sent from the Axis - User mailing list archive at Nabble.com. >> >> >> >> >> >> >> >> >> >> >> --------------------------------------------------------------------- >> >> >> To unsubscribe, e-mail: [EMAIL PROTECTED] >> >> >> For additional commands, e-mail: [EMAIL PROTECTED] >> >> >> >> >> >> >> >> > >> >> > >> >> > >> >> > -- >> >> > Thilina Gunarathne - http://thilinag.blogspot.com >> >> > >> >> > >> --------------------------------------------------------------------- >> >> > To unsubscribe, e-mail: [EMAIL PROTECTED] >> >> > For additional commands, e-mail: [EMAIL PROTECTED] >> >> > >> >> > >> >> > >> >> >> >> -- >> >> View this message in context: >> >> >> http://www.nabble.com/Using-SWA-with-ADB-in-axis2-tp16335414p16396897.html >> >> >> >> >> >> Sent from the Axis - User mailing list archive at Nabble.com. >> >> >> >> >> >> --------------------------------------------------------------------- >> >> To unsubscribe, e-mail: [EMAIL PROTECTED] >> >> For additional commands, e-mail: [EMAIL PROTECTED] >> >> >> >> >> > >> > >> > >> > -- >> > Thilina Gunarathne - http://thilinag.blogspot.com >> > >> > --------------------------------------------------------------------- >> > To unsubscribe, e-mail: [EMAIL PROTECTED] >> > For additional commands, e-mail: [EMAIL PROTECTED] >> > >> > >> > >> >> -- >> View this message in context: >> http://www.nabble.com/Using-SWA-with-ADB-in-axis2-tp16335414p16418442.html >> Sent from the Axis - User mailing list archive at Nabble.com. >> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: [EMAIL PROTECTED] >> For additional commands, e-mail: [EMAIL PROTECTED] >> >> > > -- View this message in context: http://www.nabble.com/Using-SWA-with-ADB-in-axis2-tp16335414p16463638.html Sent from the Axis - User mailing list archive at Nabble.com. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
