axis-c-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From a.eriks...@global-imaging.net
Subject Re: java client/c++ server problem
Date Tue, 24 May 2005 15:30:42 GMT

Well,

Finaly i found the answers to my problems myself.
As usual you have only your self to blame. Quoting
earlier discussion:

"
Hi,
    Your C++ client is failing because the server response contains
href/multiref (e.g. <item href="#id0"/>)
    This is nothing wrong with the server, but Axis C++ does not
support href/multiref. Please see
http://issues.apache.org/jira/browse/AXISCPP-111 for more details.
Also note that this URL has some info on how to disable href/multiref
in Axis Java. If you disable href/multiref on server side, then the
client may be able to deserialize.

Thanks,
Samisa...
"

This is true for both way (c++ client - java server, java client - c++
server). Adding java client side something like:

((org.apache.axis.client.Stub)port)._setProperty(org.apache.axis.AxisEngine.PROP_DOMULTIREFS,
Boolean.FALSE);

and java server side (server.wsdd) something like:

<parameter name="sendMultiRefs" value="false "/>

should do the trick.

...and thats word
Anders


----- Original Message -----
From: <a.eriksson@global-imaging.net>
To: <axis-c-user@ws.apache.org>
Sent: Tuesday, May 24, 2005 11:08 AM
Subject: java client/c++ server problem


> Hi everyboy,
>
> I have installed axis c++ 1.4 (with apache 1.3.31, using
> xerces-c_2_2_0.dll) and have created a service. The service works
> excelent with my axis c++ client. However when I try to use an axis java
> client my server fails to deserialize the incomming message.
>
> The java client reports the following error message:
> ***************************************
> erreur ! Unknown Wsdd Exception
> AxisFault
> faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server
> faultSubcode:
> faultString: Unknown Wsdd Exception
> faultActor: server name:listen port
> faultNode:
> faultDetail:
>        {http://xml.apache.org/axis/}stackTrace:AxisFault
> faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server
> faultSubcode:
> faultString: Unknown Wsdd Exception
> faultActor: server name:listen port
> faultNode:
> faultDetail:
>
> Unknown Wsdd Exception
>        at
> org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:223)
>        at
> org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:130)
>        at
> org.apache.axis.encoding.DeserializationContextImpl.endElement(DeserializationContextImpl.java:1053)
>        at org.apache.crimson.parser.Parser2.maybeElement(Unknown Source)
> at org.apache.crimson.parser.Parser2.content(Unknown Source) at
> org.apache.crimson.parser.Parser2.maybeElement(Unknown Source) at
> org.apache.crimson.parser.Parser2.content(Unknown Source) at
> org.apache.crimson.parser.Parser2.maybeElement(Unknown Source) at
> org.apache.crimson.parser.Parser2.parseInternal(Unknown Source) at
> org.apache.crimson.parser.Parser2.parse(Unknown Source) at
> org.apache.crimson.parser.XMLReaderImpl.parse(Unknown Source) at
> javax.xml.parsers.SAXParser.parse(Unknown Source)
>        at
> org.apache.axis.encoding.DeserializationContextImpl.parse(DeserializationContextImpl.java:218)
>        at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:568)
> at org.apache.axis.Message.getSOAPEnvelope(Message.java:427) at
> org.apache.axis.transport.http.HTTPSender.readFromSocket(HTTPSender.java:701)
>        at
> org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:93)
>        at
> org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
>        at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118) at
> org.apache.axis.SimpleChain.invoke(SimpleChain.java:83) at
> org.apache.axis.client.AxisClient.invoke(AxisClient.java:144) at
> org.apache.axis.client.Call.invokeEngine(Call.java:2688) at
> org.apache.axis.client.Call.invoke(Call.java:2671)
>        at org.apache.axis.client.Call.invoke(Call.java:2357)
>        at org.apache.axis.client.Call.invoke(Call.java:2280)
>        at org.apache.axis.client.Call.invoke(Call.java:1741)
>        at
> myNameSpace.MyWebService.SoapBindingStub.myFunction(MyWebServiceSoapBindingStub.java:168)
>        at Test.main(Test.java:33)
>
>
> Unknown Wsdd Exception
>        at
> org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:223)
>        at
> org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:130)
>        at
> org.apache.axis.encoding.DeserializationContextImpl.endElement(DeserializationContextImpl.java:1053)
>        at org.apache.crimson.parser.Parser2.maybeElement(Unknown Source)
> at org.apache.crimson.parser.Parser2.content(Unknown Source) at
> org.apache.crimson.parser.Parser2.maybeElement(Unknown Source) at
> org.apache.crimson.parser.Parser2.content(Unknown Source) at
> org.apache.crimson.parser.Parser2.maybeElement(Unknown Source) at
> org.apache.crimson.parser.Parser2.parseInternal(Unknown Source) at
> org.apache.crimson.parser.Parser2.parse(Unknown Source) at
> org.apache.crimson.parser.XMLReaderImpl.parse(Unknown Source) at
> javax.xml.parsers.SAXParser.parse(Unknown Source)
>        at
> org.apache.axis.encoding.DeserializationContextImpl.parse(DeserializationContextImpl.java:218)
>        at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:568)
> at org.apache.axis.Message.getSOAPEnvelope(Message.java:427) at
> org.apache.axis.transport.http.HTTPSender.readFromSocket(HTTPSender.java:701)
>        at
> org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:93)
>        at
> org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
>        at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118) at
> org.apache.axis.SimpleChain.invoke(SimpleChain.java:83) at
> org.apache.axis.client.AxisClient.invoke(AxisClient.java:144) at
> org.apache.axis.client.Call.invokeEngine(Call.java:2688) at
> org.apache.axis.client.Call.invoke(Call.java:2671)
>        at org.apache.axis.client.Call.invoke(Call.java:2357)
>        at org.apache.axis.client.Call.invoke(Call.java:2280)
>        at org.apache.axis.client.Call.invoke(Call.java:1741)
>        at
> myNameSpace.MyWebService.SoapBindingStub.myFunction(MyWebServiceSoapBindingStub.java:168)
>        at Test.main(Test.java:33)
> ********************************
>
> As I can see, the server returns an error code (-1) from this line
>    if (AXIS_SUCCESS != (nStatus = pIWSDZ->getStatus()))  return nStatus;
> in the funcion
>    int MyWebService_Wrapper::myFunction(void* pMsg)
> in MyWebService_Wrapper.cpp that was created with WSDL2Ws:
>    java -classpath .\wsdl2ws.jar;.;%CLASSPATH%
> org.apache.axis.wsdl.wsdl2ws.WSDL2Ws myWSDL.wsdl -o./ClientOutmyWSDL -lc++
> -sclient
>
> This is just after that the IWrapperSoapDeSerializer has called
> getCmplxObject to
> get the two arguments I send to this service.
>
> My (anonymized) wsdl file for the project looks like:
> **************************************
> <?xml version="1.0" encoding="UTF-8"?>
> <wsdl:definitions targetNamespace="http://myNameSpace"
> xmlns="http://schemas.xmlsoap.org/wsdl/"
> xmlns:apachesoap="http://xml.apache.org/xml-soap"
> xmlns:impl="http://myNameSpace"
> xmlns:intf="http://myNameSpace"
> 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:types>
> <schema targetNamespace="http://myNameSpace"
> xmlns="http://www.w3.org/2001/XMLSchema">
> <import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
> <complexType name="MyComplexType0">
> <sequence>
>  <element name="arg1" nillable="true" type="xsd:string"/>
>  <element name="arg2" nillable="true" type="xsd:string"/>
>  <element name="arg3" nillable="true" type="xsd:string"/>
>  <element name="arg4" nillable="true" type="xsd:string"/>
>  <element name="arg5" nillable="true" type="xsd:string"/>
> </sequence>
> </complexType>
> <complexType name="MyComplexType1">
> <sequence>
>  <element name="arg1" nillable="true" type="xsd:string"/>
>  <element name="arg2" nillable="true" type="xsd:string"/>
>  <element name="arg3" nillable="true" type="xsd:string"/>
> </sequence>
> </complexType>
> <complexType name="MyComplexType2">
> <sequence>
>  <element name="arg1" nillable="true" type="xsd:string"/>
>  <element name="arg2" nillable="true" type="xsd:string"/>
>  <element name="arg3" nillable="true" type="xsd:string"/>
>  <element name="arg4" nillable="true" type="xsd:string"/>
> </sequence>
> </complexType>
> </schema>
> </wsdl:types>
>
>  <wsdl:message name="myMethod1Request">
>    <wsdl:part name="in0" type="intf:MyComplexType1"/>
>    <wsdl:part name="in1" type="intf:MyComplexType0"/>
>  </wsdl:message>
>  <wsdl:message name="myMethod1Response">
>    <wsdl:part name="myMethod1Return" type="xsd:string"/>
>  </wsdl:message>
>  <wsdl:message name="myMethod2Request">
>    <wsdl:part name="in0" type="intf:MyComplexType1"/>
>    <wsdl:part name="in1" type="intf:MyComplexType0"/>
>  </wsdl:message>
>  <wsdl:message name="myMethod2Response">
>    <wsdl:part name="myMethod2Return" type="xsd:string"/>
>  </wsdl:message>
>  <wsdl:portType name="MyWebService">
>    <wsdl:operation name="myMethod1" parameterOrder="in0 in1">
>      <wsdl:input message="intf:myMethod1Request"
> name="myMethod1Request"/> <wsdl:output
> message="intf:myMethod1Response"
> name="myMethod1Response"/>
>    </wsdl:operation>
>    <wsdl:operation name="myMethod2" parameterOrder="in0 in1">
>      <wsdl:input message="intf:myMethod1Request"
> name="myMethod1Request"/> <wsdl:output
> message="intf:myMethod1Response"
> name="myMethod1Response"/>
>    </wsdl:operation>
>  </wsdl:portType>
>  <wsdl:binding name="MyWebServiceSoapBinding" type="intf:MyWebService">
>    <wsdlsoap:binding style="RPC"
>    transport="http://schemas.xmlsoap.org/soap/http"/>
>
>    <wsdl:operation name="myMethod1">
>      <wsdlsoap:operation soapAction="MyWebService#myMethod1"/>
>      <wsdl:input name="myMethod1Request">
>        <wsdlsoap:body
>        encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
>        namespace="http://myNameSpace"
>        use="encoded"/>
>      </wsdl:input>
>      <wsdl:output name="myMethod1Response">
>        <wsdlsoap:body
> encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
>        namespace="http://myNameSpace"
>        use="encoded"/>
>      </wsdl:output>
>    </wsdl:operation>
>
>    <wsdl:operation name="myMethod2">
>      <wsdlsoap:operation soapAction="MyWebService#myMethod2"/>
>      <wsdl:input name="myMethod2Request">
>        <wsdlsoap:body
>        encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
>        namespace="http://myNameSpace"
>        use="encoded"/>
>      </wsdl:input>
>      <wsdl:output name="myMethod2Response">
>        <wsdlsoap:body
> encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
>        namespace="http://myNameSpace"
>        use="encoded"/>
>      </wsdl:output>
>    </wsdl:operation>
>
>  </wsdl:binding>
>  <wsdl:service name="MyWebService">
>    <wsdl:port binding="intf:MyWebServiceSoapBinding" name="MyWebService">
>      <wsdlsoap:address location="http://localhost:8080/axis/MyWebService"/>
>    </wsdl:port>
>  </wsdl:service>
> </wsdl:definitions>
> ************************************
>
>
> I have read some input in this list about the same issue proposing that
> one shold try the DOCUMENT style binding instead of RPC. So
> I did but still get the same error.
>
>
>
>
>
>
> Another attempt to solve this problem would probably be to upgrade to axis
> c++ 1.5. I have tried this but of some reason it wont work (I tried
> several times and I have no problems installing 1.4).
> I use:
> * Apache 1.3.31
> * xerces-c_2_2_0.dll
> * xp professional sp2
> I do:
> * moev/rename deploy folder
> * set AXISCPP_DEPLOY
> * add the axis_mod.dll
> * copy AxisServer.dll,HTTPTransport.dll and HTTPChannel.dll
> * rename/move AxisXMLParser_Xerces.dll
> * edit axiscpp.conf
>    LogPath:C:\Program Files\Apache Group\Apache\Axis\logs\AxisLog.txtc
> WSDDFilePath:C:\Program Files\Apache
> Group\Apache\Axis\conf\server.wsdd XMLParser:C:\Program Files\Apache
> Group\Apache\Axis\lib\AxisXMLParser.dll Transport_http:C:\Program
> Files\Apache
> Group\Apache\Axis\lib\AxisTransport.dll
>    Channel_HTTP:C:\Program Files\Apache
> Group\Apache\Axis\lib\HTTPChannel.dll
> * edit server.wsdd
>
> Rnning apache -X gives me:
>    application has requested the Runtime to terminate it in an unusual
> way. Please contact the application's support team for more
>    information.
>
> Any knowledge of problems with my particular setup or any remark on
> anything I might do wrong?
>
>
>
> Any help would be much appreciated!!!
> Thanks in advance
> Anders Eriksson
>
>


Mime
View raw message