`
deltaj
  • 浏览: 207973 次
  • 性别: 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

    【Apache Axis2 创建 Web Service 知识点详解】 Apache Axis2 是一个强大的 Web Service 框架,由 Apache 软件基金会开发,主要用于构建和部署高性能、高效率的 Web Services。它基于 Java 语言,提供了全面的 Web ...

    Axis2创建web service快速入门

    本教程将引导你快速入门,掌握使用Axis2创建Web服务的基本步骤。 **一、了解Axis2** Axis2是Axis1的下一代产品,它提供了更强大的功能和更高的性能。Axis2基于模块化架构,支持多种传输协议(如HTTP、HTTPS、SMTP...

    用axis2开发web service

    - 需要安装Axis2的自动代码生成插件,以便在Eclipse中创建Web服务。 - 创建一个新的Java项目,如`HelloWorld`,并在项目中定义一个包`cn.xupt.edu.soa`,以及一个名为`HelloWorld`的类,该类包含一个方法`sayHello...

    基于Tomcat5.0和Axis2开发Web Service应用实例

    **步骤3:创建Web Service** 1. 创建一个简单的Java类,定义你需要暴露的服务接口。 ```java public interface HelloWorld { String sayHello(String name); } ``` 2. 实现这个接口。 ```java public class ...

    基于Axis2的Web Service 快速开发.ppt

    【基于Axis2的Web Service快速开发】 Web Service是一种在互联网上进行交互的软件技术,它允许不同的系统和服务之间通过标准的协议进行数据交换。Web Service的核心特性包括自包含性、自描述性、开放性、标准性和...

    axis2,apache axis2,web service

    Apache Axis2提供了多种方式来创建Web服务,包括代码优先(Code First)和WSDL优先(WSDL First)两种模式。代码优先允许开发者先编写Java类,然后通过 Axis2 工具生成相应的WSDL文件,而WSDL优先则是先定义服务的...

    axis2 web service完整教学

    2. **创建Web Service**:对着`HelloWorld`类右键选择`Web Services &gt; Create Web Service`,配置运行时为Axis2,服务器为之前创建的Server,按照提示完成操作。 **验证服务** 1. **查看服务状态**:访问`...

    Axis开发Web Service实例

    本文将详细介绍如何使用Apache Axis创建Web Service,并将重点介绍三种不同的方法:动态调用接口(Dynamic Invocation Interface,DII)、Stubs方式和动态代理(Dynamic Proxy)方式。 #### 二、环境搭建与配置 在...

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

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

    axis2发布web service

    ### Axis2 发布 Web Service 的详细步骤与原理 #### 标题解读:Axis2发布Web Service Axis2 是一个开放源代码的Web服务框架,它实现了 SOAP 1.1 和 SOAP 1.2 协议,并支持 JAX-WS、JAX-RPC 等多种标准。使用 Axis2...

    Axis2快速构建Web Service ppt

    - **Axis2简介**:Axis2不仅是一个Web Service引擎,也是一个完整的Web服务开发框架。它支持多种消息传递模式和协议,如HTTP、HTTPS、SMTP等。Axis2的模块化设计使得扩展和定制更加便捷。 - **Axis2安装与部署**:...

    经典入门:Axis2创建webservice.pdf

    【 Axis2 创建 Web Service 入门教程】 Apache Axis2 是一个功能强大的 Web Service 开发框架,它提供了简单、高效的方法来构建和部署 Web Services。本教程将详细介绍如何使用 Axis2 创建 Web Services,从基础...

    Axis2与Eclipse整合开发的Web Service的服务端

    4. **创建Web Service**: - 在"WS_01"项目上,通过`New -&gt; Other`,然后在"Web Services"类别下选择"Web Service"来创建新的Web Service。 - 在出现的向导中,为Service implementation选择"Browse",在弹出的...

    Axis2 Web Service 开发教程

    【Axis2 Web Service 开发教程】是一份详细指导开发者如何使用Apache Axis2框架创建和部署Web服务的教学资料。Apache Axis2是Java世界中一个强大的Web服务引擎,它提供了高效的性能和灵活的架构,使得Web服务的开发...

    Eclipse下基于Axis2的Web Service平台搭建与使用

    8. **Dynamic Web Project**:在Eclipse中,Dynamic Web Project是用于创建Web应用程序的项目类型,支持包括Servlet、JSP等在内的Web组件开发。 9. **Servlets**:Servlet是Java编程语言中的一个接口,用于扩展...

    axis2(web service接口文件生成工具)

    Axis2作为强大的Web服务生成工具,为开发者提供了便捷的方式去创建、部署和管理Web服务。通过了解其核心特性、工作原理以及使用方法,开发人员可以高效地构建健壮的分布式应用程序。在"axis2-1.5.3"压缩包中提供的...

    WebService大讲堂之Axis2及其它web service资料

    1. **服务端创建**:使用Axis2,开发者可以轻松地将Java类转换为Web Service。通过编写Java代码,定义服务接口,然后使用Axis2工具生成服务部署描述符(WSDL),最后将服务部署到服务器上。 2. **客户端调用**:...

Global site tag (gtag.js) - Google Analytics