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



Reply via email to