Detelin, It is working. Thanks a lot Detelin.
Thanks. ndthuy wrote: > > 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-tp16335414p16537440.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]