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 Ichiro Fujita <ta...@attglobal.net> on 2002/05/04 13:12:10 UTC

Java2WSDL(Beta2) Bug?

Hi,

I try to create WSDL file from Java class.
Java2WSDL of Axis Beta1 create correct WSDL file.
But Java2WSDL of Axis Beta2 create incorrect WSDL file.


For example...

Sample test class(CalcBean.java) is like following.

public class CalcBean {
	int result = 0;
	public int sum( int a ) {
		result = result + a;
		return result;
	}
}

Next, do Java2WSDL command at both environment.

  > java org.apache.axis.wsdl.Java2WSDL -o calc.wsdl -l http://localhost:8080/axis/servlet/AxisServlet -n CalcService CalcBean

Both WSDL files are like following.

  In case of Axis Beta1 :

   <wsdl:binding name="AxisServletSoapBinding" type="intf:CalcBean">
      <wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
      <wsdl:operation name="sum">
         <wsdlsoap:operation soapAction=""/>
         <wsdl:input>
            <wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="CalcService"/>
         </wsdl:input>
         <wsdl:output>
            <wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="CalcService"/>
         </wsdl:output>
      </wsdl:operation>
   </wsdl:binding>


  In case of Axis Beta2 :

   <wsdl:binding name="AxisServletSoapBinding" type="intf:CalcBean">
      <wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
      <wsdl:operation name="sum">
         <wsdlsoap:operation soapAction=""/>
         <wsdl:input>
            <wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="sum"/>
         </wsdl:input>
         <wsdl:output>
            <wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="CalcService"/>
         </wsdl:output>
      </wsdl:operation>
   </wsdl:binding>



These "namespace" of <wsdl:input> tags are different.
If I use beta2's WSDL file, WSDL2Java generate incorrect binding class.

    public int sum(int in0) throws java.rmi.RemoteException{
        if (super.cachedEndpoint == null) {
            throw new org.apache.axis.NoEndPointException();
        }
        org.apache.axis.client.Call call = createCall();
        javax.xml.rpc.namespace.QName p0QName = new javax.xml.rpc.namespace.QName("", "in0");
        call.addParameter(p0QName, new javax.xml.rpc.namespace.QName("http://www.w3.org/2001/XMLSchema", "int"), int.class, javax.xml.rpc.ParameterMode.IN);
        call.setReturnType(new javax.xml.rpc.namespace.QName("http://www.w3.org/2001/XMLSchema", "int"));
        call.setUseSOAPAction(true);
        call.setSOAPActionURI("");
        call.setOperationStyle("rpc");
        call.setOperationName(new javax.xml.rpc.namespace.QName("sum", "sum"));
                                                                 ~~~INCORRECT!!!

Is it spec? or bug?


My Environment

OS   : Windows2000 SP2
Java : Sun Java 2 SDK Ver1.4.0
Axis : Beta2


Thanks.

===========================================
Ichiro Fujita (taichiro@attglobal.net)