You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by Dave Overbeck <do...@turnkey.com> on 2005/12/06 16:24:43 UTC
OperationDesc not synchronized ?
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>