锁定老帖子 主题:axis2创建web service(三)
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-12-04
最后修改:2008-12-07
这节我们就来写一个客户端来调用一下这个服务。主要关注一下如何用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. /** * 调用发布的服务。 * */ public class SimpleClient { public static void main(String[] args) throws Exception{ //初始化桩文件 SimpleServerStub stub = new SimpleServerStub(); //初始化SimpleMethod方法。 SimpleServerStub.SimpleMethod request = new SimpleServerStub.SimpleMethod(); //调用simpleMethod的setName方法。 request.setName("zt"); // System.out.println(stub.simpleMethod(request).get_return()); } } 如果一切正常,你就会看到结果 log4j:WARN No appenders could be found for logger (org.apache.axis2.description.AxisService). 调用服务成功。这是个简单的例子,下节我们再做一个复杂一点的例子,来更好的学习axis2
附录: 1. axis2创建web service(一) 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-12-13
我到最后生成客户端时出错了,到网上找了下
这样也行 输出目录 D:\workspace\WSjava 在cmd下运行: D:\tools\axis2-1.4.1\bin> wsdl2java.bat -uri http://localhost:8080/axis2/services/HelloUser?wsdl -o D:\workspace\WSjava Using AXIS2_HOME: D:\tools\axis2-1.4.1 Using JAVA_HOME: D:\tools\jdk1.6.0_04 Retrieving document at 'http://localhost:8080/axis2/services/HelloUser?wsdl'. 出现上述3行表示正常结束,代码生成 |
|
返回顶楼 | |
发表时间:2009-02-02
我按照上面的步骤一步步进行 到最后也是出现错误 An error ocurred while completing process -java.lang.reflect.InvocationTargetException
不知道怎么回事 查下有人说换成MyEclipse5.5.1 GA 可以,我用的是6.5的 不知道怎么解决了 还请楼主多多帮忙啊 |
|
返回顶楼 | |
发表时间:2009-02-19
对
我按照上面的步骤一步步进行 到最后也是出现错误 An error ocurred while completing process -java.lang.reflect.InvocationTargetException |
|
返回顶楼 | |
发表时间:2009-03-10
[问题原因]
主要的问题在于 Code Generator plugin 内缺少了 backport-util-concurrent-3.1.jar 包 [解决方案] - 关闭 Eclipse - copy %AXIS2_HOME%\lib\backport-util-concurrent-3.1.jar 到下列 folder %ECLIPSE_HOME%\plugins\Axis2_Codegen_Wizard_1.3.0\lib - 注册此 jar 包: 編輯 %ECLIPSE_HOME%\plugins\Axis2_Codegen_Wizard_1.3.0\plugin.xml , 在 <runtime> 內加入下面的字串 <library name="lib/backport-util-concurrent-3.1.jar"> <export name="*"/> </library> - 执行 Eclipse 即可 - 若问题仍存在, 尝试改变Eclipse 使用的 JRE, 换成 JAVA 6 - 使用 JRE 1.6 启动 Eclipse 后, 若仍有问题, 试着加入 -clean 参数启动 Eclipse, 清除 osig cache: eclipse.exe -vm "c:\java\jre1.6.0_05\bin\java.exe" -clean -console -consoleLog -debug -vmargs -Xmx384M - 关闭 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 |
|
返回顶楼 | |
发表时间: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即可。 |
|
返回顶楼 | |
发表时间: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" |
|
返回顶楼 | |
发表时间:2009-11-20
插件这么多bug,真是烂到家了,用一楼的方法,直接用命令行吧。或者直接抛弃Axis,用CXF吧
|
|
返回顶楼 | |
浏览 14194 次