Return-Path: Delivered-To: apmail-ws-axis-user-archive@www.apache.org Received: (qmail 66246 invoked from network); 2 Apr 2008 13:13:01 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 2 Apr 2008 13:13:01 -0000 Received: (qmail 30116 invoked by uid 500); 2 Apr 2008 13:12:52 -0000 Delivered-To: apmail-ws-axis-user-archive@ws.apache.org Received: (qmail 30098 invoked by uid 500); 2 Apr 2008 13:12:52 -0000 Mailing-List: contact axis-user-help@ws.apache.org; run by ezmlm Precedence: bulk Reply-To: axis-user@ws.apache.org list-help: list-unsubscribe: List-Post: List-Id: Delivered-To: mailing list axis-user@ws.apache.org Received: (qmail 30087 invoked by uid 99); 2 Apr 2008 13:12:52 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 02 Apr 2008 06:12:52 -0700 X-ASF-Spam-Status: No, hits=2.2 required=10.0 tests=HTML_MESSAGE,SPF_PASS,WHOIS_MYPRIVREG X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of detelinyordanov@gmail.com designates 64.233.178.241 as permitted sender) Received: from [64.233.178.241] (HELO hs-out-0708.google.com) (64.233.178.241) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 02 Apr 2008 13:12:09 +0000 Received: by hs-out-0708.google.com with SMTP id x43so1394197hsb.0 for ; Wed, 02 Apr 2008 06:12:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=beta; h=domainkey-signature:received:received:message-id:date:from:to:subject:in-reply-to:mime-version:content-type:references; bh=mDDeZ5BxWfc5CNHvSqURmMGhtjliifubZdTz6/RbxSg=; b=sAEVi2+ToGdLsQ7M5fvlSCiSn0v4zt607c//P1WX6dQZjEepTa+qIPHS3JLacCBe1zF2Yc4JW6kyRuxnd6r00SOWMFEilYmvbpophJtlWAKIMsbD0q1r5aULZVblsIaGL32mVXRPShZI/f+vV14JJicz028NOJ4UHdeawvMsF7g= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=message-id:date:from:to:subject:in-reply-to:mime-version:content-type:references; b=axQHJ5AYULkH94r/r7aUEKmBztqpLRSSwSmHONncc7KhPV1O/3ocCofZk1sj8WCEhQ72YAHFnyMvr4hQvV+h21cZinlvok3NFM6XI56HqPUFkVA9LtjU5mCm7+vEWeH6uXZkwBm3F42Z4HJQBXOq+Rnv+WW3VapV4JHSMS3Ddb0= Received: by 10.100.144.18 with SMTP id r18mr21231118and.85.1207141934870; Wed, 02 Apr 2008 06:12:14 -0700 (PDT) Received: by 10.100.227.19 with HTTP; Wed, 2 Apr 2008 06:12:14 -0700 (PDT) Message-ID: Date: Wed, 2 Apr 2008 16:12:14 +0300 From: "Detelin Yordanov" To: axis-user@ws.apache.org Subject: Re: Using SWA with ADB in axis2 In-Reply-To: <16418442.post@talk.nabble.com> MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_Part_1879_29533399.1207141934798" References: <16335414.post@talk.nabble.com> <16396897.post@talk.nabble.com> <16418442.post@talk.nabble.com> X-Virus-Checked: Checked by ClamAV on apache.org ------=_Part_1879_29533399.1207141934798 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline 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 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.(InternetHeaders.java:93) > at javax.mail.internet.MimeBodyPart.(MimeBodyPart.java:124) > at > org.apache.axiom.attachments.PartOnMemory.(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: > > > --MIMEBoundaryurn_uuid_1ADD9EC725995A3FD11206998815387Content-Type: > application/octet-streamContent-Transfer-Encoding: binaryContent-ID: > /* 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: > /* 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 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 > > ------=_Part_1879_29533399.1207141934798 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline 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


------=_Part_1879_29533399.1207141934798--