Thanks Keith. Yes. This does enable me to generate a stub that looks for optimized binary content. Regards, Sathish C On Wed, Feb 11, 2009 at 4:51 AM, keith chapman <[email protected]>wrote:
> Hi, > > The problem us that your WSDL specifies the type as xs:any. When sending > out binary data (as Mtom or as Base64) the type of the element should be > type="xs:base64Binary". The stub will take care of it if the attachment is > Mtom or Base64. > > Thanks, > Keith. > > On Wed, Feb 11, 2009 at 12:18 AM, Sathish C <[email protected]> wrote: > >> Martin, >> >> That is a good hint. I require Binary optimization and so i am having this >> parameter value set to 'true'. >> >> Now I tried disabling MTOM, so the content is embedded within the >> <ns:myresult> element (I had to modify generated WSDL to specify >> <ns:return> element to contain <ns:myresult>) and not binary optimized so >> that there is no <xop:include> element created. The below issue on <"* >> com.ctc.wstx.exc.WstxParsingException*: Expected a text token, got >> START_ELEMENT"> DOES NOT occur anymore. I made three observations as >> below and their respective queries: >> >> 1) When I return a binary optimized content as OMText, i am having to >> introduce an OMElement to contain it and hence the element <myresult/> in >> the below excerpt of response string. Stub finds this element instead of >> text and throws the error <"*com.ctc.wstx.exc.WstxParsingException*: >> Expected a text token, got START_ELEMENT"> . >> Is there a way to avoid this additional element and attach optimized >> content directly? >> >> <soapenv:Envelope> xmlns:soapenv=" >> http://www.w3.org/2003/05/soap-envelope"><soapenv:Body> >> <ns:mtomSampleResponse> xmlns:ns="http://ws.apache.org/axis2"><ns:return> >> <ns:myresult> >> <xop:Include href=" >> cid:1.urn:uuid:[email protected]" xmlns:xop=" >> http://www.w3.org/2004/08/xop/include" /></ns:myresult> >> </ns:return></ns:mtomSampleResponse> >> </soapenv:Body></soapenv:Envelope> >> 2) As shown above, the binary optimized content is not set inline within >> <myresult> element, but as attachment referred by <xop:include> element. The >> stub again throws the error looking at <xop:include> element. The generated >> stub looks for text token for element of type xs:any defined in WSDL. How >> can I make the generated stub sensitive of <xop:include> element and look >> through its reference instead of looking for text content? >> >> 3) When MTOM is disabled, stub is able to construct the OMElement from the >> embedded text content. Is there a way to generate the stub being MTOM aware >> and able to handle <xop:include> element? >> >> Any suggestions/insight on this would be very much appreciated. >> >> Regards, >> Sathish C >> >> >> On Tue, Feb 10, 2009 at 3:06 AM, Martin Gainty <[email protected]>wrote: >> >>> can you display the value of enableMtom in axis2.xml? >>> >>> <parameter name="enableMTOM" locked="false">true</parameter> >>> >>> assuming you are sending XML Binary Optimised Packages >>> >>> *http://ws.apache.org/axis2/0_94/mtom-guide.html* >>> ? >>> Martin >>> ______________________________________________ >>> Disclaimer and confidentiality note >>> Everything in this e-mail and any attachments relates to the official >>> business of Sender. This transmission is of a confidential nature and Sender >>> does not endorse distribution to any party other than intended recipient. >>> Sender does not necessarily endorse content contained within this >>> transmission. >>> >>> >>> >>> >>> ------------------------------ >>> Date: Tue, 10 Feb 2009 07:32:11 +0530 >>> Subject: Re: Issue with Axis OMElement >>> From: [email protected] >>> >>> To: [email protected] >>> >>> Its hard to say what went wrong where from this. The reason it happened >>> is because of some malformed XML. That's all I can tell you looking at the >>> stack trace. >>> >>> Thanks, >>> Keith. >>> >>> On Mon, Feb 9, 2009 at 11:43 PM, Chandra suriya pandian, Sathish (GE >>> Infra, Energy) <[email protected]> wrote: >>> >>> Thanks Keith. >>> >>> I am able to get through that error by changing the type to xs:any. >>> But now i am getting the following exception under the same scenario: >>> >>> >>> Caused by: >>> *com.ctc.wstx.exc.WstxParsingException*: Expected a text token, got >>> START_ELEMENT. >>> >>> at [row,col {unknown-source}]: [1,208] >>> >>> at com.ctc.wstx.sr.StreamScanner.constructWfcException(* >>> StreamScanner.java:605*) >>> >>> at com.ctc.wstx.sr.StreamScanner.throwParseError(*StreamScanner.java:461 >>> *) >>> >>> at com.ctc.wstx.sr.BasicStreamReader.getElementText(* >>> BasicStreamReader.java:677*) >>> at org.apache.axiom.om.impl.llom.OMStAXWrapper.getElementText(* >>> OMStAXWrapper.java:899*) >>> >>> Any idea on the above problem. >>> >>> Regards, >>> *Sathish Chandra*** >>> >>> >>> ------------------------------ >>> *From:* keith chapman [mailto:[email protected]] >>> *Sent:* 09 February 2009 16:29 >>> *To:* [email protected] >>> *Subject:* Re: Issue with Axis OMElement >>> >>> Hi, >>> >>> This is due to a bug in Axis2. Ideally an OMElement should map to xs:any >>> and not xs:anyType in the WSDL. Therefore the workaround I could suggest is >>> this, Save the WSDL and edit it to use xs:any instead of xs:anyType. >>> >>> Thanks, >>> Keith. >>> >>> On Mon, Feb 9, 2009 at 8:30 PM, Chandra suriya pandian, Sathish (GE >>> Infra, Energy) <[email protected]> wrote: >>> >>> Hi, >>> >>> > I have WebService enabled a service method that returns OMElement. The >>> > generated WSDL shows the element type as 'anyType'. >>> > >>> > I generated a stub from the WSDL and executed a client invoking the >>> > WebService method through the stub. >>> > >>> > The HTTP trace shows the response stream returned by WebService is >>> > correct. >>> > But in the client I am getting the following error: >>> > >>> > org.apache.axis2.databinding.ADBException: Any type element type has >>> > not been given >>> > at >>> > org.apache.axis2.databinding.utils.ConverterUtil.getAnyTypeObject(Conv >>> > erterUtil.java:1612) >>> > >>> > Exerpt from WSDL is: >>> > >>> > <xs:element name="mtomSampleResponse"> >>> > <xs:complexType><xs:sequence> >>> > <xs:element minOccurs="0" name="return" nillable="true" >>> > type="xs:anyType"/> >>> > </xs:sequence></xs:complexType> >>> > </xs:element> >>> > >>> > Exerpt from the response stream is: >>> > >>> > <?xml version='1.0' encoding='UTF-8'?> >>> > <soapenv:Envelope >>> > xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"><soapenv:Body> >>> > <ns:mtomSampleResponse >>> > xmlns:ns="http://ws.apache.org/axis2"><ns:return> >>> > <return><xop:Include >>> > href="cid:1.urn:uuid:[email protected]" >>> > xmlns:xop="http://www.w3.org/2004/08/xop/include" /></return> >>> > </ns:return></ns:mtomSampleResponse> >>> > </soapenv:Body></soapenv:Envelope> >>> > >>> > Could you please kindly look into the same and let me know how I can >>> > overcome the above problem. >>> > Do I have to configure anything to map the response element of type >>> > 'anyType' anywhere to construct 'OMElement' back. >>> > >>> I am using Axis 2-1.4.1. >>> >>> >>> > Regards, >>> > Sathish Chandra >>> > >>> >>> >>> >>> >>> -- >>> Keith Chapman >>> Senior Software Engineer >>> WSO2 Inc. >>> Oxygenating the Web Service Platform. >>> http://wso2.org/ >>> >>> blog: http://www.keith-chapman.org >>> >>> >>> >>> >>> -- >>> Keith Chapman >>> Senior Software Engineer >>> WSO2 Inc. >>> Oxygenating the Web Service Platform. >>> http://wso2.org/ >>> >>> blog: http://www.keith-chapman.org >>> >>> ------------------------------ >>> Windows Liveā¢: E-mail. Chat. Share. Get more ways to connect. Check it >>> out.<http://windowslive.com/explore?ocid=TXT_TAGLM_WL_t2_allup_explore_022009> >>> >> >> > > > -- > Keith Chapman > Senior Software Engineer > WSO2 Inc. > Oxygenating the Web Service Platform. > http://wso2.org/ > > blog: http://www.keith-chapman.org >
