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

Reply via email to