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 Dhananjayan_K <Dh...@Satyam.com> on 2005/01/31 06:46:51 UTC
Interoprability issue of Axis with .Net
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...
Re: Interoprability issue of Axis with .Net
Posted by Aleksander Slominski <as...@cs.indiana.edu>.
this article have examples of WSDLs (parameters: complexType, string,
base64, xsD:any) that seem to work with .NET:
http://java.sun.com/developer/technicalArticles/xml/jaxrpcpatterns2/
HTH,
alek
Bill Keese wrote:
>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...
>>
>>
>>
>>
>>
>>
--
The best way to predict the future is to invent it - Alan Kay
Re: Interoprability issue of Axis with .Net
Posted by Bill Keese <bi...@tech.beacon-it.co.jp>.
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...
>
>
>
>