1.command line生成client stub
我是在xfire的lib目录(具有所有的xfire依赖jar文件)下执行该命令(确保服务开启),
java -cp xfire-all-1.2.5.jar;activation-1.1.jar;bcprov-jdk15-133.jar;ant.jar;commons-logging-1.0.4.jar;jaxb-api-2.0.jar;jaxb-impl-2.0.1.jar;jaxb-xjc-2.0.1.jar;jaxen-1.1-beta-9.jar;jaxws-api-2.0.jar;jdom-1.0.jar;jmock-1.0.1.jar;jsr173_api-1.0.jar;junit-3.8.1.jar;mail-1.4.jar;opensaml-1.0.1.jar;org.mortbay.jetty-5.1.3.jar;saaj-api-1.3.jar;saaj-impl-1.3.jar;servlet-api-2.3.jar;spring-1.2.6.jar;stax-api-1.0.1.jar;stax-utils-20040917.jar;wsdl4j-1.6.1.jar;wss4j-1.5.1.jar;wstx-asl-3.2.0.jar;xbean-2.2.0.jar;xbean-spring-2.8.jar;xercesImpl-2.6.2.jar;xfire-jsr181-api-1.0-M1.jar;xml-apis-1.0.b2.jar;XmlSchema-1.1.jar;xmlsec-1.3.0.jar org.codehaus.xfire.gen.WsGen -wsdl http://localhost:8080/xfirews/services/MathService?wsdl -o . -p com.wstream.client -overwrite true
各参数说明如下:
-wsdl : location of wsdl file ( can be any valid url )
-o : output directory for generated classes
-package : package where client code will be placed
-binding : binding to use ( jaxb or xmlbeans )
-overwrite: allows to overwrite previously generated classes ( without this option, generator will refuse to generate classes if such already exists )
2.使用xfire eclipse plugin
在命令行创建stub很麻烦,用xfire plugin很方便。
安装
在eclipse的help->Search for new features to install->next->Create New Remote Site,
输入名为XFire,site为http://dist.codehaus.org/xfire/update/,确认并选择XFire,接受协议一直到完成。
使用
File->new->other->xfire->code generation from WSDL document
WSDL URL path输入:http://localhost:8080/xfirews/services/BookService?wsdl
输出目录:XFireClient/src
XFireClient是我创建的一个java工程,把xfire的所有jar加入构建路径,在这个工程里就可以调用生成的stub。
包名:com.ws.mathclient
确认后,仔细查看生成的代码以及包。
3.若生成的代码不在你的测试工程下,请复制到测试工程目录里。
4.测试代码片段如下:
MathServiceClient service = new MathServiceClient();
MathServicePortType portType = service.getMathServiceHttpPort();
int i = portType.add(1, 2);
System.out.println(">>>>>"+i);
不出意外会得到3。