axis-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dhananjayan_K <Dhananjaya...@Satyam.com>
Subject RE: Interoprability issue of Axis with .Net
Date Mon, 31 Jan 2005 07:29:33 GMT
Hi Bill,
I tried your suggestion..but it didnt work...any other suggestions...

-----Original Message-----
From: Bill Keese [mailto:billk@tech.beacon-it.co.jp]
Sent: Monday, January 31, 2005 12:37 PM
To: axis-user@ws.apache.org
Subject: Re: Interoprability issue of Axis with .Net


Hmm, I'm not sure.  Maybe it's getting confused by the minOccurs="0" on the
"po" input parameter to the AddEntry() function?  You could try taking that
out, or using nillable="true" rather than minOccurs="0".

Bill

Dhananjayan_K wrote: 

Hi Bill,
Thanks for the response..I changed the .wsdl file as mentioned by your
previous mail related to void return type I took the 
approach 3
 
3) Void type
<complexType name="Void"/>
<element name="UpdateDocumentResponse" type="tns:Void"/>
<wsdl:message name="UpdateDocumentResponse">
<wsdl:part name="parameters" element="tns:UpdateDocumentResponse"/>
</wsdl:message>
 
still iam getting the same output when i try wsdl2java...
 
<?xml version="1.0" encoding="utf-8"?>
<definitions 
targetNamespace="urn:SimpleService"
xmlns:http=" http://schemas.xmlsoap.org/wsdl/http/
<http://schemas.xmlsoap.org/wsdl/http/> " 
xmlns:soap=" http://schemas.xmlsoap.org/wsdl/soap/
<http://schemas.xmlsoap.org/wsdl/soap/> " 
xmlns:s=" http://www.w3.org/2001/XMLSchema
<http://www.w3.org/2001/XMLSchema> " 
xmlns:soapenc=" http://schemas.xmlsoap.org/soap/encoding/
<http://schemas.xmlsoap.org/soap/encoding/> " 
xmlns:tm=" http://microsoft.com/wsdl/mime/textMatching/
<http://microsoft.com/wsdl/mime/textMatching/> " 
xmlns:mime=" http://schemas.xmlsoap.org/wsdl/mime/
<http://schemas.xmlsoap.org/wsdl/mime/> " 
xmlns=" http://schemas.xmlsoap.org/wsdl/ <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:complexType name="Void"/>           
      <s:element name="AddEntryResponse" type="s0:Void"/>      
      <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
<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"/
<http://localhost:8080/axis/services/SSPort%22/> >
    </port>
  </service>
</definitions>
 
thanks...
 
 

-----Original Message-----
From: Bill Keese [ mailto:billk@tech.beacon-it.co.jp
<mailto:billk@tech.beacon-it.co.jp> ]
Sent: Monday, January 31, 2005 12:23 PM
To: axis-user@ws.apache.org <mailto:axis-user@ws.apache.org> 
Subject: Re: Interoprability issue of Axis with .Net


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/" <http://schemas.xmlsoap.
org/wsdl/http/>  

xmlns:soap= "http://schemas.xmlsoap.org/wsdl/soap/" <http://schemas.xmlsoap.
org/wsdl/soap/>  

xmlns:s= "http://www.w3.org/2001/XMLSchema"
<http://www.w3.org/2001/XMLSchema>  

xmlns:soapenc= "http://schemas.xmlsoap.org/soap/encoding/"
<http://schemas.xmlsoap.org/soap/encoding/>  

xmlns:tm= "http://microsoft.com/wsdl/mime/textMatching/"
<http://microsoft.com/wsdl/mime/textMatching/>  

xmlns:mime= "http://schemas.xmlsoap.org/wsdl/mime/" <http://schemas.xmlsoap.
org/wsdl/mime/>  

xmlns= "http://schemas.xmlsoap.org/wsdl/" <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"
<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"
<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:billk@tech.beacon-it.co.jp
<mailto:billk@tech.beacon-it.co.jp> ]

Sent: Monday, January 31, 2005 11:34 AM

To:  axis-user@ws.apache.org <mailto:axis-user@ws.apache.org> 

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_
<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/" <http://schemas.xmlsoap.
org/wsdl/http/>  

xmlns:soap= "http://schemas.xmlsoap.org/wsdl/soap/" <http://schemas.xmlsoap.
org/wsdl/soap/>  

xmlns:s= "http://www.w3.org/2001/XMLSchema"
<http://www.w3.org/2001/XMLSchema>  

xmlns:soapenc= "http://schemas.xmlsoap.org/soap/encoding/"
<http://schemas.xmlsoap.org/soap/encoding/>  

xmlns:tm= "http://microsoft.com/wsdl/mime/textMatching/"
<http://microsoft.com/wsdl/mime/textMatching/>  

xmlns:mime= "http://schemas.xmlsoap.org/wsdl/mime/" <http://schemas.xmlsoap.
org/wsdl/mime/>  

xmlns= "http://schemas.xmlsoap.org/wsdl/" <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"
<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"
<http://localhost:8080/axis/services/SSPort> />

   </port>

 </service>

</definitions>



deploy.wsdd



<deployment

   xmlns= "http://xml.apache.org/axis/wsdd/"
<http://xml.apache.org/axis/wsdd/> 

   xmlns:java= "http://xml.apache.org/axis/wsdd/providers/java" <http://xml.
apache.org/axis/wsdd/providers/java> >



 <!-- Services from SService WSDL service -->



 <service name="SSPort" provider= "java:RPC" <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...





 



    





  


Mime
View raw message