You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by Mohit Gupta <mo...@yahoo.com> on 2004/06/09 06:39:26 UTC

odd behaviour wile running axis service on VS.NET Managed and Native code client

Hi,

We are seeing some odd behavior while accessing our
Web Service written in Axis 1.2. The managed code C++
client auto-generated by VS.NET works perfectly, but
the native code C++ client auto-generated by VS.NET
fails completely. The SOAP requests generated by both
the clients are identical, and the SOAP responses
generated by the web service are also identical in
both cases. The modified WSDL files generated by both
the clients are also identical.

Specifically, the native code C++ client fails in the
BeginParse() method of the CSoapSocketClient template
class which is auto-generated by VS.NET:

int _tmain(int argc, _TCHAR* argv[])
{
	CServerClassService serverClassService ;
	CoInitialize(NULL);

	int i = 10, x;
	HRESULT h;

	h = serverClassService.getIntValue(i, &x);
	
	printf("value  of x is %x", x);
	return 0;
}

The program prints 0xcccccccc, and h is set to E_FAIL.

The server and client WSDL files and the SOAP
request/response messages are attached below. Any
illumination of this situation will be much
appreciated.

thanks,
Manoj

The web service WSDL:
---------------------

?xml version="1.0" encoding="UTF-8"?>
wsdl:definitions
targetNamespace="com.adaptiva.cclient"
xmlns:apachesoap="http://xml.apache.org/xml-soap"
xmlns:impl="com.adaptiva.cclient"
xmlns:intf="com.adaptiva.cclient"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
!--WSDL created by Apache Axis version: 1.2beta Built
on Jun 04, 2004 (12:01:42 PDT)-->
wsdl:message name="getIntValueResponse">
wsdl:part name="getIntValueReturn" type="xsd:int"/>
/wsdl:message>
wsdl:message name="getIntValueRequest">wsdl:part
name="in0" type="xsd:int"/>
/wsdl:message>
wsdl:portType name="ServerClass">
wsdl:operation name="getIntValue"
parameterOrder="in0">
wsdl:input message="impl:getIntValueRequest"
name="getIntValueRequest"/>
wsdl:output message="impl:getIntValueResponse"
name="getIntValueResponse"/>
/wsdl:operation>
/wsdl:portType>wsdl:binding
name="TestCClientSoapBinding" type="impl:ServerClass">
wsdlsoap:binding style="rpc"
transport="http://schemas.xmlsoap.org/soap/http"/>
wsdl:operation name="getIntValue">
wsdlsoap:operation soapAction=""/>
wsdl:input name="getIntValueRequest">
wsdlsoap:body
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="com.adaptiva.cclient" use="encoded"/>
/wsdl:input>
wsdl:output name="getIntValueResponse">
wsdlsoap:body
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="com.adaptiva.cclient" use="encoded"/>
/wsdl:output>
/wsdl:operation>
/wsdl:binding>
wsdl:service name="ServerClassService">
wsdl:port binding="impl:TestCClientSoapBinding"
name="TestCClient">
wsdlsoap:address
location="http://localhost:8080/axis/services/TestCClient"/>
/wsdl:port>
/wsdl:service>
/wsdl:definitions>

The WSDL auto-generated by both the clients:
--------------------------------------------

?xml version="1.0" encoding="utf-8"?>
definitions
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:tns="com.adaptiva.cclient"
xmlns:s="http://www.w3.org/2001/XMLSchema"
xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/"
xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
targetNamespace="com.adaptiva.cclient"
xmlns="http://schemas.xmlsoap.org/wsdl/">
types />
message name="getIntValueResponse">
part name="getIntValueReturn" type="s:int" />
/message>
message name="getIntValueRequest">
part name="in0" type="s:int" />
/message>
portType name="ServerClass">
operation name="getIntValue" parameterOrder="in0">
input name="getIntValueRequest"
message="tns:getIntValueRequest" />
output name="getIntValueResponse"
message="tns:getIntValueResponse" />
/operation>
/portType>
binding name="TestCClientSoapBinding"
type="tns:ServerClass">
soap:binding
transport="http://schemas.xmlsoap.org/soap/http"
style="rpc" />
operation name="getIntValue">
soap:operation soapAction="" />
input name="getIntValueRequest">
soap:body use="encoded"
namespace="com.adaptiva.cclient"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
/>
/input>
output name="getIntValueResponse">
soap:body use="encoded"
namespace="com.adaptiva.cclient"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
/>
/output>
/operation>
/binding>
service name="ServerClassService">
port name="TestCClient"
binding="tns:TestCClientSoapBinding">
soap:address
location="http://localhost:8080/axis/services/TestCClient"
/>
/port>
/service>
/definitions>


SOAP request message:
---------------------

?xml version="1.0" encoding="UTF-8"?>
soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
soap:Body
soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
snp:getIntValue xmlns:snp="com.adaptiva.cclient">
in0>15
/in0>
/snp:getIntValue>
/soap:Body>
/soap:Envelope>


SOAP response message:
----------------------


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>
ns1:getIntValueResponse
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:ns1="com.adaptiva.cclient">
getIntValueReturn href="#id0"/>
/ns1:getIntValueResponse>
multiRef id="id0" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="xsd:int"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">15
/multiRef>
/soapenv:Body>
/soapenv:Envelope>

reply asap

thanks


	
		
__________________________________
Do you Yahoo!?
Friends.  Fun.  Try the all-new Yahoo! Messenger.
http://messenger.yahoo.com/