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 "Franklin, Allen" <Al...@concerto.com> on 2004/12/11 00:01:10 UTC

C++ client cannot access a Java String type method return value.

I am unable to retrieve a String data type as a return value of a SOAP method.
I always get a value of zero for the pointer to the character string.
The server-side is Java, using axis version 1.2beta3 (it's java from JBuilder2005).
My client is C++ axis version 1.3.

Using the java int data type as a return type for my SOAP method works ok.
Any insight into what might be causing the problem would be greatly appreciated.

Below is the xml result or calling my method.
The name of my SOAP method is GetEventInfo().
You can see the data in the xml, it's, "hey you".

HTTP/1.1 200 OK Set-Cookie: JSESSIONID=507EB967C8D8FCAA921E54801FF2B035; Path=/ConcertoSipService Content-Type: text/xml;charset=utf-8 Transfer-Encoding: chunked Date: Fri, 10 Dec 2004 22:29:03 GMT Server: Apache-Coyote/1.1  204 <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:GetEventInfoResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="http://sipserver.concerto.com">
         <GetEventInfoReturn xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">hey you</GetEventInfoReturn>
      </ns1:GetEventInfoResponse>
   </soapenv:Body></soapenv:Envelope>
0

Below is the wsdl for my server. Sorry that it is so long, but I thought it might be of use.

<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions targetNamespace="http://sipserver.concerto.com" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://sipserver.concerto.com" xmlns:intf="http://sipserver.concerto.com" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns1="http://portalcommon.concerto.com" 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.2beta3
Built on Aug 01, 2004 (05:59:22 PDT)-->
 <wsdl:types>
  <schema targetNamespace="http://portalcommon.concerto.com" xmlns="http://www.w3.org/2001/XMLSchema">
   <import namespace="http://sipserver.concerto.com"/>
   <import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
   <complexType name="ConcertoFault">
    <sequence>
     <element name="concertoFaultCode" type="xsd:int"/>
     <element name="concertoFaultString" nillable="true" type="xsd:string"/>
    </sequence>
   </complexType>
  </schema>
  <schema targetNamespace="http://sipserver.concerto.com" xmlns="http://www.w3.org/2001/XMLSchema">
   <import namespace="http://portalcommon.concerto.com"/>
   <import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
   <complexType name="SipServerException">
    <complexContent>
     <extension base="tns1:ConcertoFault">
      <sequence/>
     </extension>
    </complexContent>
   </complexType>
  </schema>
 </wsdl:types>

   <wsdl:message name="CANCELResponse">

      <wsdl:part name="CANCELReturn" type="xsd:int"/>

   </wsdl:message>

   <wsdl:message name="EndCallRequest">

      <wsdl:part name="sessionId" type="xsd:string"/>

      <wsdl:part name="eventhandle" type="xsd:int"/>

   </wsdl:message>

   <wsdl:message name="CANCELRequest">

      <wsdl:part name="sessionId" type="xsd:string"/>

      <wsdl:part name="eventhandle" type="xsd:int"/>

   </wsdl:message>

   <wsdl:message name="BYEResponse">

      <wsdl:part name="BYEReturn" type="xsd:int"/>

   </wsdl:message>

   <wsdl:message name="ProxyAuthResponse">

      <wsdl:part name="ProxyAuthReturn" type="xsd:int"/>

   </wsdl:message>

   <wsdl:message name="GetEventInfoResponse">

      <wsdl:part name="GetEventInfoReturn" type="xsd:string"/>

   </wsdl:message>

   <wsdl:message name="DisableInboundRequest">

      <wsdl:part name="sessionId" type="xsd:string"/>

   </wsdl:message>

   <wsdl:message name="EndCallResponse">

      <wsdl:part name="EndCallReturn" type="xsd:int"/>

   </wsdl:message>

   <wsdl:message name="ConfigAddToTemplateResponse">

      <wsdl:part name="ConfigAddToTemplateReturn" type="xsd:int"/>

   </wsdl:message>

   <wsdl:message name="RejectCallRequest">

      <wsdl:part name="sessionId" type="xsd:string"/>

      <wsdl:part name="eventhandle" type="xsd:int"/>

      <wsdl:part name="failReason" type="xsd:int"/>

   </wsdl:message>

   <wsdl:message name="INVITEResponse">

      <wsdl:part name="INVITEReturn" type="xsd:int"/>

   </wsdl:message>

   <wsdl:message name="INVITERequest">

      <wsdl:part name="sessionId" type="xsd:string"/>

      <wsdl:part name="eventhandle" type="xsd:int"/>

      <wsdl:part name="callId" type="xsd:int"/>

      <wsdl:part name="dest" type="xsd:string"/>

      <wsdl:part name="rxRTPport" type="xsd:int"/>

      <wsdl:part name="templateId" type="xsd:int"/>

   </wsdl:message>

   <wsdl:message name="DisableInboundResponse">

      <wsdl:part name="DisableInboundReturn" type="xsd:int"/>

   </wsdl:message>

   <wsdl:message name="ProxyAuthRequest">

      <wsdl:part name="user" type="xsd:string"/>

      <wsdl:part name="pwd" type="xsd:string"/>

   </wsdl:message>

   <wsdl:message name="ConfigAddToTemplateRequest">

      <wsdl:part name="sessionId" type="xsd:string"/>

      <wsdl:part name="templateId" type="xsd:int"/>

      <wsdl:part name="name" type="xsd:string"/>

      <wsdl:part name="value" type="xsd:string"/>

   </wsdl:message>

   <wsdl:message name="AnswerCallRequest">

      <wsdl:part name="sessionId" type="xsd:string"/>

      <wsdl:part name="eventhandle" type="xsd:int"/>

      <wsdl:part name="RTPport" type="xsd:int"/>

      <wsdl:part name="templateId" type="xsd:int"/>

   </wsdl:message>

   <wsdl:message name="SipServerException">

      <wsdl:part name="fault" type="impl:SipServerException"/>

   </wsdl:message>

   <wsdl:message name="BYERequest">

      <wsdl:part name="sessionId" type="xsd:string"/>

      <wsdl:part name="eventhandle" type="xsd:int"/>

   </wsdl:message>

   <wsdl:message name="RejectCallResponse">

      <wsdl:part name="RejectCallReturn" type="xsd:int"/>

   </wsdl:message>

   <wsdl:message name="EnableInboundRequest">

      <wsdl:part name="sessionId" type="xsd:string"/>

   </wsdl:message>

   <wsdl:message name="EndSessionResponse">

      <wsdl:part name="EndSessionReturn" type="xsd:int"/>

   </wsdl:message>

   <wsdl:message name="EnableInboundResponse">

      <wsdl:part name="EnableInboundReturn" type="xsd:int"/>

   </wsdl:message>

   <wsdl:message name="EndSessionRequest">

      <wsdl:part name="sessionId" type="xsd:string"/>

   </wsdl:message>

   <wsdl:message name="AnswerCallResponse">

      <wsdl:part name="AnswerCallReturn" type="xsd:int"/>

   </wsdl:message>

   <wsdl:message name="GetEventInfoRequest">

      <wsdl:part name="sessionId" type="xsd:string"/>

      <wsdl:part name="timeout" type="xsd:int"/>

   </wsdl:message>

   <wsdl:portType name="ISipServer">

      <wsdl:operation name="ConfigAddToTemplate" parameterOrder="sessionId templateId name value">

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

         <wsdl:output message="impl:ConfigAddToTemplateResponse" name="ConfigAddToTemplateResponse"/>

         <wsdl:fault message="impl:SipServerException" name="SipServerException"/>

      </wsdl:operation>

      <wsdl:operation name="INVITE" parameterOrder="sessionId eventhandle callId dest rxRTPport templateId">

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

         <wsdl:output message="impl:INVITEResponse" name="INVITEResponse"/>

         <wsdl:fault message="impl:SipServerException" name="SipServerException"/>

      </wsdl:operation>

      <wsdl:operation name="CANCEL" parameterOrder="sessionId eventhandle">

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

         <wsdl:output message="impl:CANCELResponse" name="CANCELResponse"/>

         <wsdl:fault message="impl:SipServerException" name="SipServerException"/>

      </wsdl:operation>

      <wsdl:operation name="BYE" parameterOrder="sessionId eventhandle">

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

         <wsdl:output message="impl:BYEResponse" name="BYEResponse"/>

         <wsdl:fault message="impl:SipServerException" name="SipServerException"/>

      </wsdl:operation>

      <wsdl:operation name="EndCall" parameterOrder="sessionId eventhandle">

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

         <wsdl:output message="impl:EndCallResponse" name="EndCallResponse"/>

      </wsdl:operation>

      <wsdl:operation name="GetEventInfo" parameterOrder="sessionId timeout">

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

         <wsdl:output message="impl:GetEventInfoResponse" name="GetEventInfoResponse"/>

      </wsdl:operation>

      <wsdl:operation name="DisableInbound" parameterOrder="sessionId">

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

         <wsdl:output message="impl:DisableInboundResponse" name="DisableInboundResponse"/>

      </wsdl:operation>

      <wsdl:operation name="EnableInbound" parameterOrder="sessionId">

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

         <wsdl:output message="impl:EnableInboundResponse" name="EnableInboundResponse"/>

      </wsdl:operation>

      <wsdl:operation name="AnswerCall" parameterOrder="sessionId eventhandle RTPport templateId">

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

         <wsdl:output message="impl:AnswerCallResponse" name="AnswerCallResponse"/>

      </wsdl:operation>

      <wsdl:operation name="RejectCall" parameterOrder="sessionId eventhandle failReason">

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

         <wsdl:output message="impl:RejectCallResponse" name="RejectCallResponse"/>

      </wsdl:operation>

      <wsdl:operation name="ProxyAuth" parameterOrder="user pwd">

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

         <wsdl:output message="impl:ProxyAuthResponse" name="ProxyAuthResponse"/>

      </wsdl:operation>

      <wsdl:operation name="EndSession" parameterOrder="sessionId">

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

         <wsdl:output message="impl:EndSessionResponse" name="EndSessionResponse"/>

      </wsdl:operation>

   </wsdl:portType>

   <wsdl:binding name="ISipServerSoapBinding" type="impl:ISipServer">

      <wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>

      <wsdl:operation name="ConfigAddToTemplate">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="ConfigAddToTemplateRequest">

            <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://sipserver.concerto.com" use="encoded"/>

         </wsdl:input>

         <wsdl:output name="ConfigAddToTemplateResponse">

            <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://sipserver.concerto.com" use="encoded"/>

         </wsdl:output>

         <wsdl:fault name="SipServerException">

            <wsdlsoap:fault encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" name="SipServerException" namespace="http://sipserver.concerto.com" use="encoded"/>

         </wsdl:fault>

      </wsdl:operation>

      <wsdl:operation name="INVITE">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="INVITERequest">

            <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://sipserver.concerto.com" use="encoded"/>

         </wsdl:input>

         <wsdl:output name="INVITEResponse">

            <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://sipserver.concerto.com" use="encoded"/>

         </wsdl:output>

         <wsdl:fault name="SipServerException">

            <wsdlsoap:fault encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" name="SipServerException" namespace="http://sipserver.concerto.com" use="encoded"/>

         </wsdl:fault>

      </wsdl:operation>

      <wsdl:operation name="CANCEL">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="CANCELRequest">

            <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://sipserver.concerto.com" use="encoded"/>

         </wsdl:input>

         <wsdl:output name="CANCELResponse">

            <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://sipserver.concerto.com" use="encoded"/>

         </wsdl:output>

         <wsdl:fault name="SipServerException">

            <wsdlsoap:fault encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" name="SipServerException" namespace="http://sipserver.concerto.com" use="encoded"/>

         </wsdl:fault>

      </wsdl:operation>

      <wsdl:operation name="BYE">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="BYERequest">

            <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://sipserver.concerto.com" use="encoded"/>

         </wsdl:input>

         <wsdl:output name="BYEResponse">

            <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://sipserver.concerto.com" use="encoded"/>

         </wsdl:output>

         <wsdl:fault name="SipServerException">

            <wsdlsoap:fault encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" name="SipServerException" namespace="http://sipserver.concerto.com" use="encoded"/>

         </wsdl:fault>

      </wsdl:operation>

      <wsdl:operation name="EndCall">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="EndCallRequest">

            <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://sipserver.concerto.com" use="encoded"/>

         </wsdl:input>

         <wsdl:output name="EndCallResponse">

            <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://sipserver.concerto.com" use="encoded"/>

         </wsdl:output>

      </wsdl:operation>

      <wsdl:operation name="GetEventInfo">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="GetEventInfoRequest">

            <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://sipserver.concerto.com" use="encoded"/>

         </wsdl:input>

         <wsdl:output name="GetEventInfoResponse">

            <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://sipserver.concerto.com" use="encoded"/>

         </wsdl:output>

      </wsdl:operation>

      <wsdl:operation name="DisableInbound">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="DisableInboundRequest">

            <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://sipserver.concerto.com" use="encoded"/>

         </wsdl:input>

         <wsdl:output name="DisableInboundResponse">

            <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://sipserver.concerto.com" use="encoded"/>

         </wsdl:output>

      </wsdl:operation>

      <wsdl:operation name="EnableInbound">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="EnableInboundRequest">

            <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://sipserver.concerto.com" use="encoded"/>

         </wsdl:input>

         <wsdl:output name="EnableInboundResponse">

            <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://sipserver.concerto.com" use="encoded"/>

         </wsdl:output>

      </wsdl:operation>

      <wsdl:operation name="AnswerCall">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="AnswerCallRequest">

            <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://sipserver.concerto.com" use="encoded"/>

         </wsdl:input>

         <wsdl:output name="AnswerCallResponse">

            <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://sipserver.concerto.com" use="encoded"/>

         </wsdl:output>

      </wsdl:operation>

      <wsdl:operation name="RejectCall">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="RejectCallRequest">

            <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://sipserver.concerto.com" use="encoded"/>

         </wsdl:input>

         <wsdl:output name="RejectCallResponse">

            <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://sipserver.concerto.com" use="encoded"/>

         </wsdl:output>

      </wsdl:operation>

      <wsdl:operation name="ProxyAuth">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="ProxyAuthRequest">

            <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://sipserver.concerto.com" use="encoded"/>

         </wsdl:input>

         <wsdl:output name="ProxyAuthResponse">

            <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://sipserver.concerto.com" use="encoded"/>

         </wsdl:output>

      </wsdl:operation>

      <wsdl:operation name="EndSession">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="EndSessionRequest">

            <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://sipserver.concerto.com" use="encoded"/>

         </wsdl:input>

         <wsdl:output name="EndSessionResponse">

            <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://sipserver.concerto.com" use="encoded"/>

         </wsdl:output>

      </wsdl:operation>

   </wsdl:binding>

   <wsdl:service name="ISipServerService">

      <wsdl:port binding="impl:ISipServerSoapBinding" name="ISipServer">

         <wsdlsoap:address location="http://localhost:8080/ConcertoSipService/services/ISipServer"/>

      </wsdl:port>

   </wsdl:service>

</wsdl:definitions>