You are viewing a plain text version of this content. The canonical link for it is here.
Posted to c-user@axis.apache.org by "Cid, Jose" <Jo...@avocent.com> on 2005/02/19 02:21:44 UTC
Access Violation in Call-->invoke() method
Hello again,
I have installed axis c++ 1.5 and axis java server 1_2RC2 under tomcat
4.1.30.
I have the following wsdl file:
<?xml version="1.0" encoding="UTF-8"?>
<definitions name="urn:simpleTest" targetNamespace="urn:simpleTest"
xmlns:tns="urn:simpleTest"
xmlns:typens="urn:simpleTest"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:impl="urn:simpleTest"
xmlns="http://schemas.xmlsoap.org/wsdl/">
<!-- Type Declarations -->
<!-- Message Declarations -->
<message name="authenticateUserRequest">
<part name="userName" type="xsd:string"/>
<part name="userPassword" type="xsd:string"/>
</message>
<message name="authenticateUserResponse">
<part name="authenticateReturn" type="xsd:string"/>
</message>
<!-- Port Type Declarations -->
<portType name="SimpleTestPortTypes">
<operation name="authenticateUser" parameterOrder="userName
userPassword">
<input message="tns:authenticateUserRequest"/>
<output message="tns:authenticateUserResponse"/>
</operation>
</portType>
<!-- Binding Declarations -->
<binding name="SimpleTestSoapBinding" type="tns:SimpleTestPortTypes">
<soap:binding style="rpc"
transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="authenticateUser">
<soap:operation soapAction="SimpleTestPortTypes#authenticateUser"/>
<input name="authenticateUserRequest">
<soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="urn:simpleTest"
use="encoded"/>
</input>
<output name="authenticateUserResponse">
<soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="urn:SonicAdminWS"
use="encoded"/>
</output>
</operation>
</binding>
<!-- Service Declaration -->
<service name="SimpleTestService">
<port binding="tns:SimpleTestSoapBinding" name="SimpleTestPortTypes">
<soap:address
location="http://sun-josecid:8080/axis/services/SimpleTestPortTypes"/>
</port>
</service>
</definitions>
Have deployed the server side and created client side stubs in c++. My
client code is simple and the relevant part looks as follow:
SimpleTestPortTypes sa( endpoint, APTHTTP1_0 );
szReturn = sa.authenticateUser( "jose", "bogus");
When the service, authenticateUser(...), is called as above the code
generates an access violation. This happens during the invoke method of
the client stub impl:
if (AXIS_SUCCESS == m_pCall->invoke()) <--- Fails during this call
{
if(AXIS_SUCCESS == m_pCall->checkMessage("authenticateUserResponse",
"urn:simpleTest"))
{
Ret = m_pCall->getElementAsString("authenticateReturn", 0);
}
}
m_pCall->unInitialize();
return Ret;
When the service method is called with empty strings as parameters, ie.
authenticateUser( "", "" ), the call succeeds. I had the SoapMonitor
applet running to see if the request is being made and response. Does
any one have any idea what could be going on here? Am I missing some
files, configuration, etc..
Any help is appreciated
Thanks,
jose