调用Axis1.x布署的WebService的问题

前两天项目中需要与其它厂商进行接口互连。对方采用的是Sun Server、Tomcat5.5、JDK5、Axis1.4布署的WebService.在互连的过程中,却遇到了一些问题。WebService本身是标准化的,调用也相对简易。一般JAVA语言流行的WeService开源的项目有:Xfire\Axis\CFX。下面讲讲过程:

 

我先用Xfire根据WSDL文件,生成STUB的方式来调用,结果却总是无法验证WSDL的XML内容。然后又改成用Axis1.4来调用,可以调用。代码如下:

代码已删除

 

 

以上的代码通过Axis1.4的API能够正常调用WEBSERIVSE。

但总是不能尽人意,由于项目中用了Axis2,而Axis1.4API与Axis2的API放在同一项目LIB中有兼容性问题。面对已经调用好的服务因为这个冲突问题而且不得不重新做,真是让人无奈,只好将Axis1.4中的调用改成Axis2的调用。

 

去下载Axis2的包:http://ws.apache.org/axis2/download/1_4/download.cgi

下载完成后,解压,axis2-std-1.0-bin.zip,进到axis2-1.4\bin目录下。新建一个.bat批处理文件。代码如下:

 

wsdl2java.bat -uri http://192.168.1.1:8080/simpass/services/conBuyCommService?wsdl -o D:\opensource\Axis2\axis2-1.4-bin\axis2-1.4\bin -p cn.com.wsclient

 

-url 后面的是WebService地址:

http://192.168.1.1:8080/simpass/services/conBuyCommService?wsdl

 

-o 是输出的路径:

-o D:\opensource\Axis2\axis2-1.4-bin\axis2-1.4\bin

-p 是生成的包路径:

 -p cn.com.wsclient

 

执行后:会在bin目录下生成一个src目录。进去后可以看到,生成了cn.com.wsclient包,其中有两个文件:

 

XXServiceServiceCallbackHandler.java

XXServiceServiceStub.java

 

这两个文件就是生成的stub文件。在工程中导入axis2-std-1.0-bin.zip解压后的lib里的包。

再新建一个测试类,来测试一下:

代码已删除

 

 

 

测试OK

 

Axis1.x中比较过时,有些与与日俱增的标准化不相符,有兼容性问题。

你可能感兴趣的:(apache,webservice,cgi,sun,OpenSource)