`
deltaj
  • 浏览: 207179 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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.

/**
 * 调用发布的服务。
 * 
 */
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).
log4j:WARN Please initialize the log4j system properly.
ztSay this is a Simple method ^-^。

调用服务成功。这是个简单的例子,下节我们再做一个复杂一点的例子,来更好的学习axis2

 

 附录:

1. axis2创建web service(一)
2. axis2创建web service(二)
3. axis2创建web service(三)

4. axis2创建web service(四)

  • 大小: 48.1 KB
  • 大小: 40.6 KB
  • 大小: 40.5 KB
  • 大小: 10 KB
  • 大小: 104.7 KB
  • 大小: 120.5 KB
  • 大小: 33.2 KB
分享到:
评论
14 楼 panglingjava 2013-08-07  
jymercury 写道
小红叉没有了,但运行报错
Exception in thread "main" org.apache.axis2.AxisFault:wrong number of arguments
明明跟例子写的一样的啊。。求解

13 楼 jymercury 2013-03-26  
小红叉没有了,但运行报错
Exception in thread "main" org.apache.axis2.AxisFault:wrong number of arguments
明明跟例子写的一样的啊。。求解
12 楼 makeboluo0000 2011-11-22  
生成的代码错误实在太多了,jar包什么的读导进去了 还是一大片错
11 楼 makeboluo0000 2011-11-22  
7.在package Explorer中刷新一下项目
刷新项目后 怎么没有生成文件啊?
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(); 
这样写的吧
9 楼 lyx4873281 2011-10-05  
//初始化SimpleMethod方法。 
SimpleServerStub.SimpleMethod request = new  SimpleServerStub.SimpleMethod(); 



没搞明白这句怎么出来的。。。
8 楼 superLinux 2011-07-18  
现在用1.6.0版本没有这个问题了,还有就是版本不一致会出现这个问题
7 楼 peng_joy 2009-11-20  
插件这么多bug,真是烂到家了,用一楼的方法,直接用命令行吧。或者直接抛弃Axis,用CXF吧
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"
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即可。
4 楼 flhuang 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
3 楼 portrait 2009-02-19  

我按照上面的步骤一步步进行 到最后也是出现错误

An error ocurred while completing process

-java.lang.reflect.InvocationTargetException

2 楼 jiao_098 2009-02-02  
<p>我按照上面的步骤一步步进行 到最后也是出现错误</p>
<p>An error ocurred while completing process</p>
<p>-java.lang.reflect.InvocationTargetException</p>
<p> </p>
<p>不知道怎么回事 查下有人说换成MyEclipse5.5.1 GA 可以,我用的是6.5的 </p>
<p>不知道怎么解决了</p>
<p>还请楼主多多帮忙啊</p>
1 楼 yuan29346 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行表示正常结束,代码生成

相关推荐

    Axis2创建web service快速入门

    Axis2创建web service快速入门

    用Axis2创建Web Service

    Axis2创建WebService,有详尽介绍,还有附图,本人进行过测试,可以使用

    (原创)用Eclipse + Axis2+Tomcat创建Web Service

    (熬夜做成,希望多多看看,有一处错误,把单词wapper改为webapps,敬请原谅) 目录大纲: ...三、 Web Service 客户端的创建。 3.1 创建WSDL文件。 3.2 利用WSDL创建stub。 3.3 利用stub类测试服务。

    MyEclipse7.0创建基于Axis的Web service

    通过该实验将掌握配置MyEclipse7.0的axis Web Service的开发环境,通过Top-Down方式创建、发布基于axis Web Service的基本步骤,进一步加深学生对XML、WSDL、SOAP等Web Service概念的理解。

    helios创建Web Service服务(axis2)

    helios创建Web Service服务

    在Eclipse中创建基于Axis2的web services

    3. 创建web工程 1). 建立一个 JavaProject 命名为 ws ,将 axis2 用户库加入到 build path 中。 2). 现在开始编写要发布的 WebSevice ,在 src 中建包 briup ,建立 Hello 类如下 Package pkg.service; public ...

    Axis+MyEclipse6.0+Tomcat5.0开发Web Service实例总结

    Axis+MyEclipse6.0+Tomcat5.0开发Web Service实例总结

    Axis2运行环境2

    1. axis2-1.1.1.rar中包含工程中所需的axis2的类包。 2. axis2.war是打包好的web应用。用于放在Tomcat中,当运行Tomcat后会自动解压。...具体的部署步骤和使用请参照《(原创)用Eclipse + Axis2+Tomcat创建Web Service》

    Spring Web Service实例

    好像没有多少人讨论, 大多数的话题都是围绕xfire, cxf, axis/axis2等主流的Web Service框架.尽管是从事这方面的工作, 不过实际开发中还是公司内部开发的一个Web Service模块, 发现与Spring提供的这个模块的构架很像...

    Axis2运行环境1

    1. axis2-1.1.1.rar中包含工程中所需的axis2的类包。 2. axis2.war是打包好的web应用。用于放在Tomcat中,当运行Tomcat后会自动解压。...具体的部署步骤和使用请参照《(原创)用Eclipse + Axis2+Tomcat创建Web Service》

    axis2-1.6.2

    Axis2创建WebService实例所需要的bin压缩包和war压缩包

    Developing Web Services with Apache Axis2

    这是最好的手把手教会你怎么去创建web service应用

    如何使用Axis_CXF创建WS服务

    使用axis和CXF实现web service的说明文档。

    Apache Web Service(JAVA 必看)

    Woden项目是Apache Web Services项目演化而来的一个子项目,主要用来开发用于读/写、操作、创建WSDL文档的Java类库,在初始阶段支持WSDL2.0,但是随着开发的继续,将会支持各种版本的WSDL。 Woden主要包含了两部分...

    基于SOAP和Axis2的Web服务设计与实现

    Web Service作为SOA(Service Oriented Architecture)的最好实现...介绍了Web服务框架以及支撑Web服务的WSDL、SOAP、Axis2和JUDDI等相关理论知识,通过设计与实现一个例子来阐述Web服务创建、发布、查找和调用的整个过程.

    java SOAPHEADER的web service

    c# JSON返回格式的WEB SERVICE//www.jb51.net/article/16768.htm我这里是利用axis创建类包的,首先下载axis的压缩包,然后解压,把axis放到webapp下面。如果可以运行,就OK了。 c#创建的webservice自带的wsdl的,...

    编程入门_Eclipse教程

    3. 编写Web service程序 10 3.1. Axis2的简单WebService示例 10 3.1.1. 0配置POJO的Webservice 10 3.1.2. 用axis2的辅助工具发布、调用WebService 12 3.1.3. WebService会话Session的管理 24 3.1.4. 用Spring创建的...

    解决异构系统的通信和整合

    在TOMCAT-HOME/webapps/axis下创建MyMath.jws文件

    Java实现webservice实例

     一:首先创建个WEB工程,然后: http://ws.Apache.org/axis/网站下载Axis安装包.当然还依赖其他包的,我这里在附件里上传了所有应用到得包,方便大家。  二:然后写wsdd 文件(注:其实这里真的不用,可以跳过第...

Global site tag (gtag.js) - Google Analytics