在JDK1.6版本以后,在<JAVA_HOME>/bin目录下有一个wsimport.exe工具,该工具可以根据wsdl文件自动生成webservice接口调用的java客户端代码,十分方便。而自己仅需要写一个测试类。
使用过程如下:
1. 获取webservice的wsdl文件。
2. 输入命令wsimport unifiedOrder.wsdl -keep -p wy.soap.order -s d:/mytest即可生成代码到d:/mytest目录。
参数含义如下:
-keep keepgenerated files
-p <pkg> specifiesthe target package
-s <directory> specify where to place generated source files
也可以直接从url生成:
wsimport -d generated http://example.org/stock?wsdl
这有个例子:
目录D:\mytest\WSDL\unifiedOrder下已经存在一个wsdl文件:
在cmd窗口进入该目录:输入命令wsimport unifiedOrder.wsdl -keep -p wy.soap.order -s d:/mytest
源代码就生成到d:/mytest目录下了。在当前wy目录,还生成了所有的class文件:
然后,可以把这些class打为jar包,或者将源代码导入到你的IDE中使用。
本人这里导入所有的.java文件到eclipse工程里:
测试类为UnifiedQueryTest.java,这里只需实例化xxxxxService类并调用接口方法。
代码如下:
package wy.soap.query;
class UnifiedQueryTest{
public static void main(String[] args) {
IS3UnifiedQueryService server = new IS3UnifiedQueryService();
IS3UnifiedQueryServicePortType spt =server.getIS3UnifiedQueryServiceHttpPort();
System.out.println(
spt.unifiedQuery(
"<?xml version=\"1.0\"encoding=\"UTF-8\"?>"
+"<ATS>"
+"<Requesthead>"
+"<user>0119</user>"
+"<request_type>04300006</request_type>"
+"<password>a03edc60-b836-45c5-863b-01a98e3f72f1</password>"
+"<server_version>00000000</server_version>"
+"<sender>0119</sender>"
+"<uuid>ce5ab777-57e9-4172-b003-ec05dea71da4</uuid>"
+"<flowintime>2016-12-15 16:39:03.865CST</flowintime>"
+"</Requesthead>"
+"<PUB>"
+"<TransSource>JFCD-BJ</TransSource>"
+"<TransCode>QryRecState</TransCode>"
+"<TransDate>20161215</TransDate>"
+"<TransTime>163903</TransTime>"
+"<TransSeq>20161215163903865</TransSeq>"
+"</PUB>"
+"<IN>"
+"<RdSeq>JFCD-BJ201612151601454920008</RdSeq>"
+"</IN> "
+"</ATS>"));
}
}
编译即可运行。