Hello, we need a singleton service that must be document/literal due
to interoperability issues. The Interface used to generate the wsdl
(LockManager) and the wsdl generated with the java2wsdl tool are
attached. We use the following options in the generation:

-l http://localhost:8080/axis/services/LockManagerService -n
http://tomas.org/faultolerance/lockmanager/service -y DOCUMENT -u
LITERAL aux.LockManager

and then we generate the skeleton/stub code with wsdl2java with the
following options:

-s -S true -W -d "Application" LockManagerService.wsdl

Once we have implemented and deployed our service, we make a call to
the lock method through the generated stub and it seems to send it
well, as you can see in the attached xml file, obtained with tcpmon,
but in the server side, the skeleton object gets only the first
parameter of the method and all the other parameters are received as
null. That behavor does not happen if the service is deployed as
Request instead of Application or if it uses RPC/Enconded instead of
Document/Literal.
Is it a bug with Axis? Are we doing something wrong?

--
Regards.
José Antonio Sánchez
package aux;


public class DeadLockFault  extends Exception {

    /**
	 * 
	 */
	private static final long serialVersionUID = 2717697272314789394L;

	public DeadLockFault() {
    	
    }

}
package aux;


public class EPR {
	
    private java.lang.String id;
    private java.lang.String url;

    public EPR() {
    	id="";
    	url="";
    }

    public EPR(
           java.lang.String id,
           java.lang.String url) {
           this.id = id;
           this.url = url;
    }


    /**
     * Gets the id value for this EPR.
     * 
     * @return id
     */
    public java.lang.String getId() {
        return id;
    }


    /**
     * Sets the id value for this EPR.
     * 
     * @param id
     */
    public void setId(java.lang.String id) {
        this.id = id;
    }


    /**
     * Gets the url value for this EPR.
     * 
     * @return url
     */
    public java.lang.String getUrl() {
        return url;
    }


    /**
     * Sets the url value for this EPR.
     * 
     * @param url
     */
    public void setUrl(java.lang.String url) {
        this.url = url;
    }

}
package aux;

public interface LockManager {
    public boolean lock(long processId, java.lang.String flowId, EPR epr, java.lang.String varName, java.lang.String hostName) throws DeadLockFault;
    public void unlock(EPR epr) ;
    public void displayCurrentDependencies();
}
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions targetNamespace="http://tomas.org/faultolerance/lockmanager/service"; xmlns:impl="http://tomas.org/faultolerance/lockmanager/service"; xmlns:intf="http://tomas.org/faultolerance/lockmanager/service"; xmlns:apachesoap="http://xml.apache.org/xml-soap"; xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"; xmlns:xsd="http://www.w3.org/2001/XMLSchema"; xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";>
<!--WSDL created by Apache Axis version: 1.4
Built on Apr 22, 2006 (06:55:48 PDT)-->
 <wsdl:types>
  <schema xmlns="http://www.w3.org/2001/XMLSchema"; targetNamespace="http://tomas.org/faultolerance/lockmanager/service"; elementFormDefault="qualified">
   <element name="in0" type="xsd:long"/>
   <element name="in1" type="xsd:string"/>
   <complexType name="EPR">
    <sequence>
     <element name="id" nillable="true" type="xsd:string"/>
     <element name="url" nillable="true" type="xsd:string"/>
    </sequence>
   </complexType>
   <element name="in2" type="impl:EPR"/>
   <element name="in3" type="xsd:string"/>
   <element name="in4" type="xsd:string"/>
   <element name="lockReturn" type="xsd:boolean"/>
   <complexType name="DeadLockFault">
    <sequence/>
   </complexType>
   <element name="fault" type="impl:DeadLockFault"/>
   <element name="in5" type="impl:EPR"/>
  </schema>
 </wsdl:types>

   <wsdl:message name="DeadLockFault">

      <wsdl:part name="fault" element="impl:fault"/>

   </wsdl:message>

   <wsdl:message name="lockResponse">

      <wsdl:part name="lockReturn" element="impl:lockReturn"/>

   </wsdl:message>

   <wsdl:message name="lockRequest">

      <wsdl:part name="in0" element="impl:in0"/>

      <wsdl:part name="in1" element="impl:in1"/>

      <wsdl:part name="in2" element="impl:in2"/>

      <wsdl:part name="in3" element="impl:in3"/>

      <wsdl:part name="in4" element="impl:in4"/>

   </wsdl:message>

   <wsdl:message name="unlockResponse">

   </wsdl:message>

   <wsdl:message name="displayCurrentDependenciesResponse">

   </wsdl:message>

   <wsdl:message name="unlockRequest">

      <wsdl:part name="in0" element="impl:in5"/>

   </wsdl:message>

   <wsdl:message name="displayCurrentDependenciesRequest">

   </wsdl:message>

   <wsdl:portType name="LockManager">

      <wsdl:operation name="lock" parameterOrder="in0 in1 in2 in3 in4">

         <wsdl:input name="lockRequest" message="impl:lockRequest"/>

         <wsdl:output name="lockResponse" message="impl:lockResponse"/>

         <wsdl:fault name="DeadLockFault" message="impl:DeadLockFault"/>

      </wsdl:operation>

      <wsdl:operation name="unlock" parameterOrder="in0">

         <wsdl:input name="unlockRequest" message="impl:unlockRequest"/>

         <wsdl:output name="unlockResponse" message="impl:unlockResponse"/>

      </wsdl:operation>

      <wsdl:operation name="displayCurrentDependencies">

         <wsdl:input name="displayCurrentDependenciesRequest" message="impl:displayCurrentDependenciesRequest"/>

         <wsdl:output name="displayCurrentDependenciesResponse" message="impl:displayCurrentDependenciesResponse"/>

      </wsdl:operation>

   </wsdl:portType>

   <wsdl:binding name="LockManagerServiceSoapBinding" type="impl:LockManager">

      <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>

      <wsdl:operation name="lock">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="lockRequest">

            <wsdlsoap:body use="literal"/>

         </wsdl:input>

         <wsdl:output name="lockResponse">

            <wsdlsoap:body use="literal"/>

         </wsdl:output>

         <wsdl:fault name="DeadLockFault">

            <wsdlsoap:fault name="DeadLockFault" use="literal"/>

         </wsdl:fault>

      </wsdl:operation>

      <wsdl:operation name="unlock">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="unlockRequest">

            <wsdlsoap:body use="literal"/>

         </wsdl:input>

         <wsdl:output name="unlockResponse">

            <wsdlsoap:body use="literal"/>

         </wsdl:output>

      </wsdl:operation>

      <wsdl:operation name="displayCurrentDependencies">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="displayCurrentDependenciesRequest">

            <wsdlsoap:body use="literal"/>

         </wsdl:input>

         <wsdl:output name="displayCurrentDependenciesResponse">

            <wsdlsoap:body use="literal"/>

         </wsdl:output>

      </wsdl:operation>

   </wsdl:binding>

   <wsdl:service name="LockManagerService">

      <wsdl:port name="LockManagerService" binding="impl:LockManagerServiceSoapBinding">

         <wsdlsoap:address location="http://localhost:8080/axis/services/LockManagerService"/>

      </wsdl:port>

   </wsdl:service>

</wsdl:definitions>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to