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 ([EMAIL PROTECTED])