上一篇记录了不使用stub方式实现对web service接口的调用,今天记录通过stub方式实现对web service 接口的调用,具体如下:
前提:有一个web service接口,wsdl:http://localhost:8080/axis2/services/Hello?wsdl ,方法声明是:
public String sayHello(String user)
创建客户端的步骤:
1、建一个java project
2、选中1中project,右键-->new-->other....-->Axis2 Code Generator
3、点next,进入下一个页面,选择:Generate Java source code from a WSDL file
4、点next,在WSDL file location 中输入:http://localhost:8080/axis2/services/Hello?wsdl
5、点击next,进入设置页面,不熟悉的话,暂用默认设置
6、点击next,选择输出文件的路径:
这里选择 Browse and select location on local file system,Output path 通过Browse 选择1中建立的java project,注:只选择到src文件即可,下面的不用再选,axis2会自动帮你生成package,下面两个Add选项可根据情况选择
7、点击next,如果弹出successfully提示框,则说明ok了,否则需要找问题原因,并解决,我在使用的时候,遇到了如下问题:
弹出提示框:Axis2 Eclipse plugin: Code Generator Exception: java.lang.reflect.InvocationTargetException
网上查得原因及解决方法(http://blog.163.com/gym_1119/blog/static/34559867200910159245578/):
[问题原因]主要的问题在于 Code Generator plugin 内缺少了 backport-util-concurrent-3.1.jar 包[解决方案]- 关闭 Eclipse- copy %AXIS2_HOME%/lib/backport-util-concurrent-3.1.jar 到下列 folder