G
Guest
I have a simple c# app that calls a Java (AXIS) web service to perform some
operations. The call works fine (the java code fires and the operations are
executed), but the response is always null. Other applications (besides the
c# ones) are able to execute the web service and get the proper response.
I put a SOAP sniffer on the call and the response was:
193
<?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><soapenv:Body><synchronousInvokeResponse
xmlns="http://DefaultNamespace"><processID xsi:type="xsd:long"
xmlns="">205</processID></synchronousInvokeResponse></soapenv:Body></soapenv:Envelope>
0
</Message>
I'm not sure where the 193, 0 and </Message> came from but I suspect that it
was caused by some chunking issues.
The response header is as follows:
<HTTPHeaders>
<content-type>text/xml;charset=utf-8</content-type>
<transfer-encoding>chunked</transfer-encoding>
<date>Wed, 26 Apr 2006 19:07:26 GMT</date>
<server>Apache-Coyote/1.1</server>
</HTTPHeaders>
Any thoughts on how I can get the c# application to properly recognize the
response? Unfortunately I can't change the Java web service.
The Java web service WSDL is as follows:
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions targetNamespace="http://adobe.com/workflow/services"
xmlns:apachesoap="http://xml.apache.org/xml-soap"
xmlns:impl="http://adobe.com/workflow/services"
xmlns:intf="http://adobe.com/workflow/services"
xmlns:ref="http://ws-i.org/profiles/basic/1.1/xsd"
xmlns:tns1="http://DefaultNamespace"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<!--
Generated by Adobe Workflow Server v7.0
getAccountData
-->
<wsdl:types>
<schema elementFormDefault="qualified"
targetNamespace="http://DefaultNamespace"
xmlns="http://www.w3.org/2001/XMLSchema">
<element name="invoke">
<complexType>
<sequence>
<element name="accountnumber" type="xsd:int"/>
</sequence>
</complexType>
</element>
<element name="invokeResponse">
<complexType>
<sequence>
<element name="processID" type="xsd:long"/>
</sequence>
</complexType>
</element>
<element name="synchronousInvoke">
<complexType>
<sequence>
<element name="accountnumber" type="xsd:int"/>
</sequence>
</complexType>
</element>
<element name="synchronousInvokeResponse">
<complexType>
<sequence>
<element name="processID" type="xsd:long"/>
</sequence>
</complexType>
</element>
<element name="getResults">
<complexType>
<sequence>
<element name="processID" type="xsd:long"/>
</sequence>
</complexType>
</element>
<element name="getResultsResponse">
<complexType>
<sequence>
<element name="processID" type="xsd:long"/>
</sequence>
</complexType>
</element>
<element name="getStatus">
<complexType>
<sequence>
<element name="processID" type="xsd:long"/>
</sequence>
</complexType>
</element>
<element name="getStatusResponse">
<complexType>
<sequence>
<element name="processID" type="xsd:long"/>
<element name="statusString" type="xsd:string"/>
<element name="statusCode" type="xsd:int"/>
</sequence>
</complexType>
</element>
</schema>
</wsdl:types>
<wsdl:message name="getStatusResponse">
<wsdl
art element="tns1:getStatusResponse" name="parameters"/>
</wsdl:message>
<wsdl:message name="getResultsRequest">
<wsdl
art element="tns1:getResults" name="parameters"/>
</wsdl:message>
<wsdl:message name="synchronousInvokeResponse">
<wsdl
art element="tns1:synchronousInvokeResponse"
name="parameters"/>
</wsdl:message>
<wsdl:message name="getResultsResponse">
<wsdl
art element="tns1:getResultsResponse" name="parameters"/>
</wsdl:message>
<wsdl:message name="getStatusRequest">
<wsdl
art element="tns1:getStatus" name="parameters"/>
</wsdl:message>
<wsdl:message name="invokeResponse">
<wsdl
art element="tns1:invokeResponse" name="parameters"/>
</wsdl:message>
<wsdl:message name="synchronousInvokeRequest">
<wsdl
art element="tns1:synchronousInvoke" name="parameters"/>
</wsdl:message>
<wsdl:message name="invokeRequest">
<wsdl
art element="tns1:invoke" name="parameters"/>
</wsdl:message>
<wsdl
ortType name="getXMLData">
<wsdl
peration name="invoke">
<wsdl:input message="impl:invokeRequest" name="invokeRequest"/>
<wsdl
utput message="impl:invokeResponse"
name="invokeResponse"/>
</wsdl
peration>
<wsdl
peration name="synchronousInvoke">
<wsdl:input message="impl:synchronousInvokeRequest"
name="synchronousInvokeRequest"/>
<wsdl
utput message="impl:synchronousInvokeResponse"
name="synchronousInvokeResponse"/>
</wsdl
peration>
<wsdl
peration name="getResults">
<wsdl:input message="impl:getResultsRequest"
name="getResultsRequest"/>
<wsdl
utput message="impl:getResultsResponse"
name="getResultsResponse"/>
</wsdl
peration>
<wsdl
peration name="getStatus">
<wsdl:input message="impl:getStatusRequest"
name="getStatusRequest"/>
<wsdl
utput message="impl:getStatusResponse"
name="getStatusResponse"/>
</wsdl
peration>
</wsdl
ortType>
<wsdl:binding name="getXMLDataSoapBinding" type="impl:getXMLData">
<wsdlsoap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl
peration name="invoke">
<wsdlsoap
peration soapAction=""/>
<wsdl:input name="invokeRequest">
<wsdlsoap:body use="literal"/>
</wsdl:input>
<wsdl
utput name="invokeResponse">
<wsdlsoap:body use="literal"/>
</wsdl
utput>
</wsdl
peration>
<wsdl
peration name="synchronousInvoke">
<wsdlsoap
peration soapAction=""/>
<wsdl:input name="synchronousInvokeRequest">
<wsdlsoap:body use="literal"/>
</wsdl:input>
<wsdl
utput name="synchronousInvokeResponse">
<wsdlsoap:body use="literal"/>
</wsdl
utput>
</wsdl
peration>
<wsdl
peration name="getResults">
<wsdlsoap
peration soapAction=""/>
<wsdl:input name="getResultsRequest">
<wsdlsoap:body use="literal"/>
</wsdl:input>
<wsdl
utput name="getResultsResponse">
<wsdlsoap:body use="literal"/>
</wsdl
utput>
</wsdl
peration>
<wsdl
peration name="getStatus">
<wsdlsoap
peration soapAction=""/>
<wsdl:input name="getStatusRequest">
<wsdlsoap:body use="literal"/>
</wsdl:input>
<wsdl
utput name="getStatusResponse">
<wsdlsoap:body use="literal"/>
</wsdl
utput>
</wsdl
peration>
</wsdl:binding>
<wsdl:service name="getXMLDataService">
<wsdl
ort binding="impl:getXMLDataSoapBinding" name="getXMLData">
<wsdlsoap:address
location="http://localhost:8080/services/getXMLData"/>
</wsdl
ort>
</wsdl:service>
</wsdl:definitions>
operations. The call works fine (the java code fires and the operations are
executed), but the response is always null. Other applications (besides the
c# ones) are able to execute the web service and get the proper response.
I put a SOAP sniffer on the call and the response was:
193
<?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><soapenv:Body><synchronousInvokeResponse
xmlns="http://DefaultNamespace"><processID xsi:type="xsd:long"
xmlns="">205</processID></synchronousInvokeResponse></soapenv:Body></soapenv:Envelope>
0
</Message>
I'm not sure where the 193, 0 and </Message> came from but I suspect that it
was caused by some chunking issues.
The response header is as follows:
<HTTPHeaders>
<content-type>text/xml;charset=utf-8</content-type>
<transfer-encoding>chunked</transfer-encoding>
<date>Wed, 26 Apr 2006 19:07:26 GMT</date>
<server>Apache-Coyote/1.1</server>
</HTTPHeaders>
Any thoughts on how I can get the c# application to properly recognize the
response? Unfortunately I can't change the Java web service.
The Java web service WSDL is as follows:
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions targetNamespace="http://adobe.com/workflow/services"
xmlns:apachesoap="http://xml.apache.org/xml-soap"
xmlns:impl="http://adobe.com/workflow/services"
xmlns:intf="http://adobe.com/workflow/services"
xmlns:ref="http://ws-i.org/profiles/basic/1.1/xsd"
xmlns:tns1="http://DefaultNamespace"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<!--
Generated by Adobe Workflow Server v7.0
getAccountData
-->
<wsdl:types>
<schema elementFormDefault="qualified"
targetNamespace="http://DefaultNamespace"
xmlns="http://www.w3.org/2001/XMLSchema">
<element name="invoke">
<complexType>
<sequence>
<element name="accountnumber" type="xsd:int"/>
</sequence>
</complexType>
</element>
<element name="invokeResponse">
<complexType>
<sequence>
<element name="processID" type="xsd:long"/>
</sequence>
</complexType>
</element>
<element name="synchronousInvoke">
<complexType>
<sequence>
<element name="accountnumber" type="xsd:int"/>
</sequence>
</complexType>
</element>
<element name="synchronousInvokeResponse">
<complexType>
<sequence>
<element name="processID" type="xsd:long"/>
</sequence>
</complexType>
</element>
<element name="getResults">
<complexType>
<sequence>
<element name="processID" type="xsd:long"/>
</sequence>
</complexType>
</element>
<element name="getResultsResponse">
<complexType>
<sequence>
<element name="processID" type="xsd:long"/>
</sequence>
</complexType>
</element>
<element name="getStatus">
<complexType>
<sequence>
<element name="processID" type="xsd:long"/>
</sequence>
</complexType>
</element>
<element name="getStatusResponse">
<complexType>
<sequence>
<element name="processID" type="xsd:long"/>
<element name="statusString" type="xsd:string"/>
<element name="statusCode" type="xsd:int"/>
</sequence>
</complexType>
</element>
</schema>
</wsdl:types>
<wsdl:message name="getStatusResponse">
<wsdl

</wsdl:message>
<wsdl:message name="getResultsRequest">
<wsdl

</wsdl:message>
<wsdl:message name="synchronousInvokeResponse">
<wsdl

name="parameters"/>
</wsdl:message>
<wsdl:message name="getResultsResponse">
<wsdl

</wsdl:message>
<wsdl:message name="getStatusRequest">
<wsdl

</wsdl:message>
<wsdl:message name="invokeResponse">
<wsdl

</wsdl:message>
<wsdl:message name="synchronousInvokeRequest">
<wsdl

</wsdl:message>
<wsdl:message name="invokeRequest">
<wsdl

</wsdl:message>
<wsdl

<wsdl

<wsdl:input message="impl:invokeRequest" name="invokeRequest"/>
<wsdl

name="invokeResponse"/>
</wsdl

<wsdl

<wsdl:input message="impl:synchronousInvokeRequest"
name="synchronousInvokeRequest"/>
<wsdl

name="synchronousInvokeResponse"/>
</wsdl

<wsdl

<wsdl:input message="impl:getResultsRequest"
name="getResultsRequest"/>
<wsdl

name="getResultsResponse"/>
</wsdl

<wsdl

<wsdl:input message="impl:getStatusRequest"
name="getStatusRequest"/>
<wsdl

name="getStatusResponse"/>
</wsdl

</wsdl

<wsdl:binding name="getXMLDataSoapBinding" type="impl:getXMLData">
<wsdlsoap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl

<wsdlsoap

<wsdl:input name="invokeRequest">
<wsdlsoap:body use="literal"/>
</wsdl:input>
<wsdl

<wsdlsoap:body use="literal"/>
</wsdl

</wsdl

<wsdl

<wsdlsoap

<wsdl:input name="synchronousInvokeRequest">
<wsdlsoap:body use="literal"/>
</wsdl:input>
<wsdl

<wsdlsoap:body use="literal"/>
</wsdl

</wsdl

<wsdl

<wsdlsoap

<wsdl:input name="getResultsRequest">
<wsdlsoap:body use="literal"/>
</wsdl:input>
<wsdl

<wsdlsoap:body use="literal"/>
</wsdl

</wsdl

<wsdl

<wsdlsoap

<wsdl:input name="getStatusRequest">
<wsdlsoap:body use="literal"/>
</wsdl:input>
<wsdl

<wsdlsoap:body use="literal"/>
</wsdl

</wsdl

</wsdl:binding>
<wsdl:service name="getXMLDataService">
<wsdl

<wsdlsoap:address
location="http://localhost:8080/services/getXMLData"/>
</wsdl

</wsdl:service>
</wsdl:definitions>