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]

Reply via email to