本篇文章将讲述如何通过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序列化对象就可以了。
如下是序列化对象的代码。
java 代码
try {
/**
* 取得前台的参数
1、航班日期
2、航班号
*/。
全部