I've successfully deployed an axis java server and was
trying the c++ client to access it. My test function
takes a string and returns a string. The wsdl2ws
program produced a wrapper function that takes two
string and retruns void, so presumably one of the the
input parameters returns the result by reference. when
I try running my client code, the following message
gets printed out:
m_MsgSize == 0, so return NULL
and nothing gets written to my result parameter.
What's going wrong?
My client code:
#include "ProtegeServerHeartVascularization.h"
int main()
{
char result[512];
char cls[512];
strcpy (cls, "Heart");
ProtegeServerHeartVascularization p;
p.getClassName(cls, result);
printf("result = %s\n", result);
printf("Done.\n");
return 0;
}
And the getClassName code that was automatically
generated by wsdl2ws:
void
ProtegeServerHeartVascularization::getClassName(xsd__string
Value0, xsd__string Value1)
{
if (AXIS_SUCCESS !=
m_pCall->Initialize(CPP_RPC_PROVIDER, NORMAL_CHANNEL))
return ;
m_pCall->SetTransportProperty(SOAPACTION_HEADER ,
"");
m_pCall->SetSOAPVersion(SOAP_VER_1_1);
m_pCall->SetOperation("getClassName",
"http://fonseca.stanford.edu:8081/axis/services/ProtegeServerHeartVascularization");
m_pCall->AddParameter((void*)&Value0, "in0",
XSD_STRING);
m_pCall->AddParameter((void*)&Value1,
"getClassNameReturn", XSD_STRING);
if (AXIS_SUCCESS == m_pCall->Invoke())
{
if(AXIS_SUCCESS ==
m_pCall->CheckMessage("getClassNameResponse",
"http://foo.bar.edu/axis/services/ProtegeServerHeartVascularization"))
{
/*not successful*/
}
}
m_pCall->UnInitialize();
}
__________________________________
Do you Yahoo!?
Friends. Fun. Try the all-new Yahoo! Messenger.
http://messenger.yahoo.com/