ws-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Suresh Janardhanan <suresh.janardha...@gmail.com>
Subject Re: Axis client CDATA XML in a string request
Date Fri, 20 Jan 2012 12:35:09 GMT
I am using the Stub generated by wsdl2java.

Suresh

On Thu, Jan 19, 2012 at 7:32 PM, Suresh Janardhanan <
suresh.janardhanan@gmail.com> wrote:

> Andreas,
>
> I'll try to start from the beginning and explain what I am trying to
> achieve as you suggested.
> I generated a web service client for a .NET Target web service using
> Apache Axis 2.1.6.1.
> Here is a snippet of the .Net WSDL.
> <wsdl:message name="RetrieveByParameterSoapIn">
> <wsdl:part name="sKey" type="s:string" />
>  <wsdl:part name="sIDTypeID" type="s:string" />
> <wsdl:part name="sID" type="s:string" />
>  <wsdl:part name="sXmlParameters" type="s:string" />
> </wsdl:message>
> The Target expects an XML string to be set in "sXmlParameters", something
> like this -
>
>
> <![CDATA[<PARAMETERS><RETURN><GENERALINFORMATION><INFORMATIONRETURNTYPEID>3294f665bc644359bfd15824d2efe29c</INFORMATIONRETURNTYPEID></GENERALINFORMATION></RETURN></PARAMETERS>]]
>
>
> Since it is a "string type", Axis client is converting the characters - <
> and >
>
> So, the request looks like this -
>
> [main] DEBUG httpclient.wire.content  - >> "<?xml version='1.0'
> encoding='UTF-8'?><soapenv:Envelope xmlns:soapenv="
> http://www.w3.org/2003/05/soap-envelope"><soapenv:Body><ns1:RetrieveByParameter
> xmlns:ns1="http://wsdl.echelon.com/Panoramix/
> "><sKey>e1839da0c11c4058928b650f97c06853</sKey><sIDTypeID>f76e5d708edd464593bb031f646990b6</sIDTypeID><sID>100063728</sID><sXmlParameters>&lt;![CDATA[&lt;PARAMETERS>&lt;RETURN>&lt;GENERALINFORMATION>&lt;INFORMATIONRETURNTYPEID>3294f665bc644359bfd15824d2efe29c&lt;/INFORMATIONRETURNTYPEID>&lt;/GENERALINFORMATION>&lt;/RETURN>&lt;/PARAMETERS>]]&gt;</sXmlParameters></ns1:RetrieveByParameter></soapenv:Body></soapenv:Envelope>"
>
>
> My objective is to send the XML string inside "sXmlParameters" as is
> without the <, > getting converted.
>
>
> So I tried these steps.
>
> 1. I thought by adding XMLInputFactory.properties - javax.xml.stream.isCoalescing=false,
> it would the issue. But you pointed out that since it is character data
> this won't work.
>
> 2. I tried changing the "sXmlParameters" type in the wsdl, but that
> resulted in com.ctc.wstx.exc.WstxUnexpectedCharException.
>
> changed sXmlParameters type=s:string to xmlStingType as shown below.
>
>       <wsdl:types>
>
>             <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>
>                   targetNamespace="http://wsdl.echelon.com/Panoramix/">
>
>                   <xsd:complexType name="xmlStringType">
>
>                         <xsd:sequence>
>
>                               <xsd:any xmlns:xsd="
> http://www.w3.org/2001/XMLSchema"/>
>
>                         </xsd:sequence>
>
>                   </xsd:complexType>
>
>             </xsd:schema>
>
>       </wsdl:types>
>
> <wsdl:part name="sXmlParameters" type="tns:xmlStringType" />
>
> Code Snippet:
>
> XmlStringType xmlStrType = *new* XmlStringType();
>
>       OMElement element = AXIOMUtil.*stringToOM*(xmlParameters);
>
>       xmlStrType.setExtraElement(element);
>
> Stack Trace:
>
> Caused by:
>
> org.apache.axiom.om.OMException:
> com.ctc.wstx.exc.WstxUnexpectedCharException: Unexpected character 'C'
> (code 67) (CDATA not allowed in prolog/epilog)
>
> at [row,col {unknown-source}]: [1,3]
>
>   Stack Trace:
>
>
> org.apache.axiom.om.impl.builder.StAXOMBuilder.next(StAXOMBuilder.java:297)
>
>
> org.apache.axiom.om.impl.llom.OMDocumentImpl.getOMDocumentElement(OMDocumentImpl.java:111)
>
>
> org.apache.axiom.om.impl.builder.StAXOMBuilder.getDocumentElement(StAXOMBuilder.java:571)
>
>
> org.apache.axiom.om.impl.builder.StAXOMBuilder.getDocumentElement(StAXOMBuilder.java:567)
>
>         org.apache.axiom.om.util.AXIOMUtil.stringToOM(AXIOMUtil.java:54)
>
>         org.apache.axiom.om.util.AXIOMUtil.stringToOM(AXIOMUtil.java:39)
>
>
> Any help is much appreciated.
>
>
> Thanks,
>
> Suresh
>
>

Mime
View raw message