axis2创建web service(三)?????? 这节我们就来写一个客户端来调用一下这个服务。主要关注一下如何用elispe
axis2创建web service(三)
?????? 这节我们就来写一个客户端来调用一下这个服务。主要关注一下如何用elispe的axis2的插件来生成stub代码。
1.在eclispe 的package Explorer 中点击右键,在菜单中选择新建--->other...----->Axis2 Code Generator
?
2.点击next,进入下一个页面,选择从wsdl文件来产生java文件。
?
3. 点击next,然后选择wsdl文件,注意此处要填写上一节我们
?4.点击next,进入设置页面,这里我们就用默认的设置。
?
5.?点击next,选择输出文件的路径。
?
6.点击next,如果看到这个页面,恭喜你已经生成代码成功。
?
7.在package Explorer中刷新一下项目,然后你发现出现2个新的文件SimpleServerStub和SimpleServerCallbackHandler 。打开SimpleServerStub你会惊喜的发现。著名的小红叉一个接一个的
这是因为没有axis2的类包。我们可以在下载的axis2-1.4.1-bin中找到lib包,把其中的jar都加入我们的工程中。
然后重新编译一下工程,这时我们发现SimpleServerStub还是有几个小红叉。这个是因为这个插件有个小bug。
生成的代码没有实现序列化方法。我们可以自己来加上,在小红叉上点一下,弹出一个小菜单,选择
Add unimplemented methods .
?
8.
- 关闭 Eclipse 后, 再以一般方式启动 Eclipse, 应可解决问题
[參考]
Error while using Axis2 Code Generator Plugin for Eclipse
http://www.nabble.com/Error-while-using-Axis2-Code-Generator-Plugin-for-Eclipse-td17147595.html
http://web-latte.blogspot.com/2008/05/axis2-eclipse-plugin-code-generator.html 5 楼 eason.j 2009-05-19 在MyEclipse6.5中会报错:
An error ocurred while completing process
-java.lang.reflect.InvocationTargetException
主要的问题在于 Code Generator plugin 内缺少了 backport-util-concurrent-3.1.jar 包和geronimo-stax-api_1.0_spec-1.0.1.jar 包。
[解决方案] :
1.关闭 Eclipse
2.copy %AXIS2_HOME%\lib\ 下的
backport-util-concurrent-3.1.jar 和 backport-util-concurrent-3.1.jar
复制到 MyEclipse 6.5\eclipse\plugins\Axis2_Codegen_Wizard_1.3.0\lib 文件夹下。
3.注册此 jar 包:
修改MyEclipse 6.5\eclipse\plugins\Axis2_Codegen_Wizard_1.3.0\plugin.xml 文件
在 <runtime> 內加入下面的字串
<library name="lib/geronimo-stax-api_1.0_spec-1.0.1.jar">
<export name="*"/>
</library>
<library name="lib/backport-util-concurrent-3.1.jar">
<export name="*"/>
</library>
到plugin.xml文件中,保存后重新启动Eclipse即可。 6 楼 xiaohu1986 2009-07-17 除了把backport-util-concurrent-2.2.jar加到lib中, 加<library name="lib/backport-util-concurrent-2.2.jar">
<export name="*"/>
</library> 到plugsin.xml
还要
1. 把Axis2_Codegen_wizard_1.3.0(eclipse/plugins/Axis2_Codegen_wizard_1.3.0)的名字改成Axis2_Codegen_wizard_1.4.0
2. 在plugin.xml中在<plugin>中 把Axis2_Codegen_wizard的version="1.3.0"改成version="1.3.0" 7 楼 peng_joy 2009-11-20 插件这么多bug,真是烂到家了,用一楼的方法,直接用命令行吧。或者直接抛弃Axis,用CXF吧 8 楼 superLinux 2011-07-18 现在用1.6.0版本没有这个问题了,还有就是版本不一致会出现这个问题 9 楼 lyx4873281 2011-10-05 //初始化SimpleMethod方法。
SimpleServerStub.SimpleMethod request = new SimpleServerStub.SimpleMethod();
没搞明白这句怎么出来的。。。 10 楼 sun_2008 2011-10-13 lyx4873281 写道//初始化SimpleMethod方法。
SimpleServerStub.SimpleMethod request = new SimpleServerStub.SimpleMethod();
没搞明白这句怎么出来的。。。
SimpleMethod request = new SimpleMethod(); lyx4873281 写道//初始化SimpleMethod方法。
SimpleServerStub.SimpleMethod request = new SimpleServerStub.SimpleMethod();
没搞明白这句怎么出来的。。。
SimpleMethod request = new SimpleMethod();
这样写的吧 11 楼 makeboluo0000 2011-11-22 7.在package Explorer中刷新一下项目
刷新项目后 怎么没有生成文件啊? 12 楼 makeboluo0000 2011-11-22 生成的代码错误实在太多了,jar包什么的读导进去了 还是一大片错