axis-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Detelin Yordanov" <detelinyorda...@gmail.com>
Subject Re: Using SWA with ADB in axis2
Date Wed, 02 Apr 2008 13:12:14 GMT
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 <nd_thuy@yahoo.com> 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 <nd_thuy@yahoo.com> 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: axis-user-unsubscribe@ws.apache.org
> >>  >>  For additional commands, e-mail: axis-user-help@ws.apache.org
> >>  >>
> >>  >>
> >>  >
> >>  >
> >>  >
> >>  > --
> >>  > Thilina Gunarathne - http://thilinag.blogspot.com
> >>  >
> >>  >
> ---------------------------------------------------------------------
> >>  > To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
> >>  > For additional commands, e-mail: axis-user-help@ws.apache.org
> >>  >
> >>  >
> >>  >
> >>
> >>  --
> >>  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: axis-user-unsubscribe@ws.apache.org
> >>  For additional commands, e-mail: axis-user-help@ws.apache.org
> >>
> >>
> >
> >
> >
> > --
> > Thilina Gunarathne - http://thilinag.blogspot.com
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
> > For additional commands, e-mail: axis-user-help@ws.apache.org
> >
> >
> >
>
> --
> 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: axis-user-unsubscribe@ws.apache.org
> For additional commands, e-mail: axis-user-help@ws.apache.org
>
>

Mime
View raw message