Hello,

I'm using WSDL2Java to generate server-side code, and I'm trying to sort out all the pieces. I've written the Impl, and originally deployed that which gave me a null reference in my .NET client, but have since learned that I'm supposed to deploy the Skeleton. I did that, and got this in the Services List:

Exception - org.apache.axis.InternalException: java.lang.Exception: The OperationDesc for strtest was not synchronized to a method of AxisWS.AxisWSBindingSkeleton.

In looking at the code, this seems plausible -- although frankly I don't understand much in the Skeleton -- because I have not done anything to connect the methods in the two classes (although of course they have the same name). So my question is, where do I do this? In the Impl? Skeleton? deployment descriptor?

Another thing that puzzles me is, in the User Guide it says:
If you don't specify the "--skeletonDeploy true" option, a skeleton will not be generated. Instead, the generated deploy.wsdd will indicate that the implementation class is deployed directly. In such cases, the deploy.wsdd contains extra meta data describing the operations and parameters of the implementation class.

I tried this, and did not get a Skeleton, but in either case the deployment descriptor is empty (it only has the <deployment> tags). Is something supposed to get generated there?

Another thing that puzzles me is, if I just use the " --server-side --skeletonDeploy true " qualifiers, I don't get the holders or a class for my data structure. I had to look through the API and use " -A " to get all the classes. So it seems I have a lot to learn about WSDL2Java.

The wsdd and wsdl are below. Any suggestions would be appreciated,

Thanks,
Dave Overbeck

<deployment
   xmlns="http://xml.apache.org/axis/wsdd/";
   xmlns:java="http://xml.apache.org/axis/wsdd/providers/java";>
 <service name="AxisWS" provider="java:RPC" style="wrapped" use="literal">
   <parameter name="className" value="AxisWS.AxisWSBindingSkeleton"/>
   <parameter name="allowedMethods" value="*"/>
   <operation name="strtest">
     <parameter name="str_arg" mode="OUT"/>
   </operation>
   <requestFlow>
     <handler type="soapmonitor"/>
   </requestFlow>
   <responseFlow>
     <handler type="soapmonitor"/>
   </responseFlow>
 </service>
</deployment>


<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns:tky="urn:AxisWS" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"; xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"; xmlns:xse="http://schemas.xmlsoap.org/soap/encoding/"; xmlns:xsd="http://www.w3.org/2001/XMLSchema"; xmlns="http://schemas.xmlsoap.org/wsdl/"; name="urn:AxisWS" targetNamespace="urn:AxisWS">
<types>
<schema xmlns="http://www.w3.org/2001/XMLSchema"; targetNamespace="urn:AxisWS">
<complexType name="byteArray">
<complexContent>
<restriction base="xse:Array">
<attribute ref="xse:arrayType" wsdl:arrayType="xsd:byte[]"/>
</restriction>
</complexContent>
</complexType>
<complexType name="shortArray">
<complexContent>
<restriction base="xse:Array">
<attribute ref="xse:arrayType" wsdl:arrayType="xsd:short[]"/>
</restriction>
</complexContent>
</complexType>
<complexType name="intArray">
<complexContent>
<restriction base="xse:Array">
<attribute ref="xse:arrayType" wsdl:arrayType="xsd:int[]"/>
</restriction>
</complexContent>
</complexType>
<complexType name="longArray">
<complexContent>
<restriction base="xse:Array">
<attribute ref="xse:arrayType" wsdl:arrayType="xsd:long[]"/>
</restriction>
</complexContent>
</complexType>
<complexType name="floatArray">
<complexContent>
<restriction base="xse:Array">
<attribute ref="xse:arrayType" wsdl:arrayType="xsd:float[]"/>
</restriction>
</complexContent>
</complexType>
<complexType name="doubleArray">
<complexContent>
<restriction base="xse:Array">
<attribute ref="xse:arrayType" wsdl:arrayType="xsd:double[]"/>
</restriction>
</complexContent>
</complexType>
<complexType name="stringArray">
<complexContent>
<restriction base="xse:Array">
<attribute ref="xse:arrayType" wsdl:arrayType="xsd:string[]"/>
</restriction>
</complexContent>
</complexType>
<complexType name="dateArray">
<complexContent>
<restriction base="xse:Array">
<attribute ref="xse:arrayType" wsdl:arrayType="xsd:date[]"/>
</restriction>
</complexContent>
</complexType>
<complexType name="timeArray">
<complexContent>
<restriction base="xse:Array">
<attribute ref="xse:arrayType" wsdl:arrayType="xsd:time[]"/>
</restriction>
</complexContent>
</complexType>
<complexType name="DhoWS">
<all>
<element name="Number" type="xsd:int"/>
<element name="Name" nillable="true" type="xsd:string"/>
</all>
</complexType>
<complexType name="DhoWSArray">
<complexContent>
<restriction base="xse:Array">
<attribute ref="xse:arrayType" wsdl:arrayType="tky:DhoWS[]"/>
</restriction>
</complexContent>
</complexType>
</schema>
</types>
<message name="empty"/>
<message name="strtestResponse">
<part name="return" type="xsd:int"/>
<part name="struct" type="tky:DhoWS"/>
</message>
<portType name="AxisWSPort">
<operation name="strtest" parameterOrder="struct">
<input message="tky:empty"/>
<output message="tky:strtestResponse"/>
</operation>
</portType>
<binding name="AxisWSBinding" type="tky:AxisWSPort">
<binding xmlns="http://schemas.xmlsoap.org/wsdl/http/"; verb="POST"/>
<binding xmlns="http://schemas.xmlsoap.org/wsdl/soap/"; style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="strtest">
<operation xmlns="http://schemas.xmlsoap.org/wsdl/soap/"; soapAction="strtest"/>
<input>
<soap:body use="literal" namespace="urn:AxisWS" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</input>
<output>
<soap:body use="literal" namespace="urn:AxisWS" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</output>
</operation>
</binding>
<service name="AxisWSService">
<port xmlns="http://schemas.xmlsoap.org/wsdl/soap/"; name="AxisWSPort" binding="tky:AxisWSBinding">
<address location="http://192.168.1.6:8080"/>
</port>
</service>
</definitions>




Reply via email to