本篇文章将讲述如何通过axis取得.net发布的Web services,并处理返回含有DataSet的处理结果,展现在页面上。
涉及到的知识有:
AXIS
SAXBuilder
xml
步骤如下:
1)、生成client stub文件。
必备条件axis开源包。JDK
A)、比如AXIS包放在你的C盘,则需要在环境变量当中设定的东东有:
AXIS_HOME=C:\AXIS
AXIS_CLASSPATH=.;%AXIS_HOME%\lib\axis.jar;%AXIS_HOME%\lib\axis-ant.jar;%AXIS_HOME%\lib\commons-discovery-0.2.jar;%AXIS_HOME%\lib\commons-logging-1.0.4.jar;%AXIS_HOME%\lib\jaxrpc.jar;%AXIS_HOME%\lib\saaj.jar;%AXIS_HOME%\lib\wsdl4j-1.5.1.jar;%AXIS_HOME%\lib\log4j-1.2.8.jar;%AXIS_HOME%\lib\activation.jar;%AXIS_HOME%\lib\mail.jar
然后加入到PATH当中:.;% AXIS_CLASSPATH% (加入就可以了)
注意:很多人因为以上的配置不对,导致对AXIS学习的信心下降,其实,仔细一点就会发现在CLASSPATH当中找一找有没有版本区别。也就是每一个JAR包是不是真的存在就可以了。(哈哈,我曾为之付出了两天的时间娞!)
B)、进入DOS模式,转到D盘,执行如下代码:
java org.apache.axis.wsdl.WSDL2Java -p http://10.2.10.80/FocService/FocService.asmx?wsdl,看到了吧。对.net发布为asmx的文件后面加入?wsdl就可以解决了。
然后就会在这个下就会有一堆的JAVA文件,一般的话会有:
xxxx.java
xxxxLocator.java
xxxxSoap.java
xxxxSoapStub.java
其次还有以下划线_xxxx????.java的文件都是序列化的对象,也就是返回的结果对应元素。可以暂时不理它。下面就以作者生成的示例做一个引用webservice的操作。作者得到的文件如下:
SearchFlightInfo.java
SearchFlightInfoLocator.java
SearchFlightInfoSoap.java
SearchFlightInfoSoapStub.java
-----------------------------------------------------------------------
_GetFlightInfoResponse_GetFlightInfoResult.java
_GetstrFlightInfo.java
_GetstrFlightInfoResponse.java
C)、引用方法:
基本思想是从得到web services后取得他的主体信息(返回的数据信息),然后生成XML文件,然后再把XML文件转换成一个JAVA序列化对象就可以了。
如下是序