You are trying to do wrapped/literal mode, right? Yeah, I think
wsdl2java is producing bad output. I think that wsdl2java is getting
confused by the void return type. Please see my earlier mail on void
return types. Dhananjayan_K wrote: Hi, For the follwing .wsdl file the *Impl.java class generated by wsdl2java seems to be wrong.. Please correct me if iam wrong.. <?xml version="1.0" encoding="utf-8"?> <definitions targetNamespace="urn:SimpleService" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:s0="urn:SimpleService"> <types> <s:schema elementFormDefault="qualified" targetNamespace="urn:SimpleService" > <s:element name="AddEntry"> <s:complexType> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="po" type="s0:ServiceDetails" /> </s:sequence> </s:complexType> </s:element> <s:complexType name="ServiceDetails"> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="ItemName" type="s:string" /> <s:element minOccurs="1" maxOccurs="1" name="Quantity" type="s:int" /> <s:element minOccurs="1" maxOccurs="1" name="price" type="s:float" /> <s:element minOccurs="0" maxOccurs="1" name="currency" type="s:string" /> </s:sequence> </s:complexType> <s:element name="AddEntryResponse"> <s:complexType/> </s:element> <s:element name="getOrder"> <s:complexType> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="str2" type="s:string" /> </s:sequence> </s:complexType> </s:element> <s:element name="getOrderResponse"> <s:complexType> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="getOrderResult" type="s:int" /> </s:sequence> </s:complexType> </s:element> </s:schema> </types> <message name="empty"/> <message name="AddEntrySoapIn"> <part name="parameters" element="s0:AddEntry" /> </message> <message name="AddEntrySoapOut"> <part name="parameters" element="s0:AddEntryResponse" /> </message> <message name="getOrderSoapIn"> <part name="parameters" element="s0:getOrder" /> </message> <message name="getOrderSoapOut"> <part name="parameters" element="s0:getOrderResponse" /> </message> <portType name="SimpleServiceRegistry"> <operation name="addEntry"> <input message="s0:AddEntrySoapIn"/> <output message="s0:empty"/> </operation> <operation name="getOrder"> <input message="s0:getOrderSoapIn"/> <output message="s0:getOrderSoapOut"/> </operation> </portType> <!-- binding declns --> <binding name="SimpleServiceSOAPBinding" type="s0:SimpleServiceRegistry"> <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/> <operation name="addEntry"> <soap:operation soapAction="" style="document"/> <input> <soap:body use="literal" /> </input> <output> <soap:body use="literal" /> </output> </operation> <operation name="getOrder"> <soap:operation soapAction="" style="document"/> <input> <soap:body use="literal" /> </input> <output> <soap:body use="literal" /> </output> </operation> </binding> <!-- service decln --> <service name="SService"> <port name="SSPort" binding="s0:SimpleServiceSOAPBinding" > <soap:address location="http://localhost:8080/axis/services/SSPort"/> </port> </service> </definitions> For addEntry method in the below generated class, I expect the addEntry method signature like public void addEntry(SimpleService.ServiceDetails parameters) but it is generated differently... The *.impl.java class is as follows package SimpleService; public class SimpleServiceSOAPBindingImpl implements SimpleService.SimpleServiceRegistry{ public void addEntry(SimpleService._AddEntry parameters) throws java.rmi.RemoteException { } public java.lang.Integer getOrder(java.lang.String getOrderStr2) throws java.rmi.RemoteException { return null; } } thanks... -----Original Message----- From: Bill Keese [mailto:[EMAIL PROTECTED]] Sent: Monday, January 31, 2005 11:34 AM To: [EMAIL PROTECTED] Subject: Re: Interoprability issue of Axis with .Net To start with: 1) each message should have only one part 2) the part should point to an element, not to a type 3) (for wrapped/literal) the part name should be "parameters", for both response and request. You are violating #1. Things get more complicated for arrays and complex structures. See also http://searchwebservices.techtarget.com/ateQuestionNResponse/0,289625,sid26_ cid594054_tax289201,00.html Dhananjayan_K wrote:Hi, Is there any place where i can get the list of interoperability issues of .Net client using Axis server... I am not able to create a client for .Net for the foll simple example.. Iam not able to find where I have gone wrong.. wsdl file... <?xml version="1.0" encoding="utf-8"?> <definitions targetNamespace="urn:SimpleService" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:s0="urn:SimpleService"> <types> <s:schema elementFormDefault="qualified" targetNamespace="urn:SimpleService" > <s:element minOccurs="0" maxOccurs="1" name="ItemName" type="s:string" /> <s:element minOccurs="1" maxOccurs="1" name="Quantity" type="s:int" /> <s:element minOccurs="1" maxOccurs="1" name="price"type="s:float"/> <s:element minOccurs="0" maxOccurs="1" name="currency" type="s:string" /> <s:element name="AddEntry"> <s:complexType> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="str1" type="s:string" /> <s:element minOccurs="0" maxOccurs="1" name="po" type="s:int"/></s:sequence> </s:complexType> </s:element> <s:element name="AddEntryResponse"> <s:complexType> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="getOrderResult" type="s:int" /> </s:sequence> </s:complexType> </s:element> <s:element name="getOrder"> <s:complexType> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="str2" type="s:string" /> </s:sequence> </s:complexType> </s:element> <s:element name="getOrderResponse"> <s:complexType> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="getOrderResult" type="s:int" /> </s:sequence> </s:complexType> </s:element> </s:schema> </types> <message name="empty"/> <message name="AddEntrySoapIn"> <part name="parameters1" element="s0:ItemName" /> <part name="parameters2" element="s0:Quantity" /> <part name="parameters3" element="s0:price" /> <part name="parameters4" element="s0:currency" /> </message> <message name="AddEntrySoapOut"> <part name="resp1" element="s0:AddEntryResponse" /> </message> <message name="getOrderSoapIn"> <part name="req1" element="s0:getOrder" /> </message> <message name="getOrderSoapOut"> <part name="resp3" element="s0:getOrderResponse" /> </message> <portType name="SimpleServiceRegistry"> <operation name="addEntry"> <input message="s0:AddEntrySoapIn"/> <output message="s0:empty"/> </operation> <operation name="getOrder"> <input message="s0:getOrderSoapIn"/> <output message="s0:getOrderSoapOut"/> </operation> </portType> <!-- binding declns --> <binding name="SimpleServiceSOAPBinding" type="s0:SimpleServiceRegistry"> <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/> <operation name="addEntry"> <soap:operation soapAction="" style="document"/> <input> <soap:body use="literal" /> </input> <output> <soap:body use="literal" /> </output> </operation> <operation name="getOrder"> <soap:operation soapAction="" style="document"/> <input> <soap:body use="literal" /> </input> <output> <soap:body use="literal" /> </output> </operation> </binding> <!-- service decln --> <service name="SService"> <port name="SSPort" binding="s0:SimpleServiceSOAPBinding" > <soap:address location="http://localhost:8080/axis/services/SSPort"/> </port> </service> </definitions> deploy.wsdd <deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"> <!-- Services from SService WSDL service --> <service name="SSPort" provider="java:RPC" style="wrapped" use="literal"> <parameter name="wsdlTargetNamespace" value="urn:SimpleService"/> <parameter name="wsdlServiceElement" value="SService"/> <parameter name="wsdlServicePort" value="SSPort"/> <parameter name="className" value="SimpleService.SimpleServiceSOAPBindingSkeleton"/> <parameter name="wsdlPortType" value="SimpleServiceRegistry"/> <parameter name="allowedMethods" value="*"/> </service> </deployment> thanks... |
- Interoprability issue of Axis with .Net Dhananjayan_K
- Re: Interoprability issue of Axis with .Net Bill Keese
- Re: Interoprability issue of Axis with .Net Aleksander Slominski
- RE: Interoprability issue of Axis with .Net Dhananjayan_K
- RE: Interoprability issue of Axis with .Net Bill Keese
- RE: Interoprability issue of Axis with .Net Dhananjayan_K
- Re: Interoprability issue of Axis with .Net Bill Keese
- RE: Interoprability issue of Axis with .Net Dhananjayan_K
- RE: Interoprability issue of Axis with .Net Dhananjayan_K
- Re: Interoprability issue of Axis with .Net Bill Keese
- RE: Interoprability issue of Axis with .Net Dhananjayan_K
- Re: Interoprability issue of Axis with .Net Bill Keese
- RE: Interoprability issue of Axis with .Net Dhananjayan_K