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
