在服务端生成wsdl目录
首先进入dos命令窗口,定位到项目根目录,如:
C:\Users\wanzheny\workspace\baidumap
执行命令行:
wsgen -cp C:\Users\wanzheny\workspace\baidumap\WebContent\WEB-INF\classes com.ws.impl.Hello -wsdl -s src -r wsdl
解释:
-cp后跟的是项目的classes路径以及要生成ws的类全路径,如果该目录找不到,参考我的前一篇文章。
Eclipse下无法自动编译,或者WEB-INF/classes目录下没文件,编译失败的解决办法
-s:后面跟上source folder,即源文件路径。
-d 指定生成的class文件的位置。
-r 指定生成的resources文件的位置。如WSDL、XSD 的位置。该路径需要自己手动创建。
-wsdl -servicename,-portname 三个参数指定生成的 WSDL 文件中的 service 和 port 的名称。 注意:这里的SEI是一个 endpoint implementation class,而不是一个接口。必须先写好一个endpoint的实现类,该类中用@WebService声明好WebService,再将它编译成class文件,才能提供给wsgen使用。
在客户端导入服务端辅助代码
Usage:wsimport [options] <WSDL_URI> 主要选项:
同样先到dos命令下,定位到客户端所在的跟路径下,如:
C:\Users\wanzheny\ws3\client
执行命令:
wsimport -keep http://localhost:8080/baidumap/HelloService?wsdl -d src
解释:
-keep 后面跟上wsdl的访问路径。
-d 指定生成的 class 文件的位置,一般放置到src目录下。
-s指定生成的 Javasource 文件的位置。
-wsdllocation指定生成的Java source中@WebService.WSDLLocation和 @WebServiceClient. wsdllocation的值