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