`
shuai1234
  • 浏览: 986624 次
  • 性别: Icon_minigender_1
  • 来自: 山西
社区版块
存档分类
最新评论

在Eclipse中使用Axis2插件生成Web Service服务端/客户端

    博客分类:
  • java
 
阅读更多

JDK版本:1.7update65

Eclipse版本:Juno Service Release 2(4.2.2)

插件安装过程及WSDL文件生成过程参见:http://blog.csdn.net/a19881029/article/details/40194787

1,下载Axis2的1.6.2版本二进制压缩包,下载路径为:http://axis.apache.org/axis2/java/core/download.cgi,下载完成后解压,以供之后使用

2,创建一个普通的Java工程,用来存放自动生成的Web Service服务端/客户端代码

3,选择Eclipse菜单栏中的File -> New -> Other...,在弹出的对话框中选择Axis2 Code Generator,然后选择Next

4,选择通过WSDL文件生成Java源代码

5,选择生成好的WSDL文件

6,如果Codegen option选择default,则不可修改下面的配置项,默认生成Web Service客户端,如果Codegen option选择custom,则可以手动修改下面的配置项

7,选择将自动生成的Java代码保存在Eclipse当前工作空间中的特定工程中

8,虽然Axis2依赖的jar包加到了工程中,但是并没有添加到工程的Build Path中,需要手动添加一下

9,客户端生成代码如下:

生成的时候选择同时生成同步方法和异步方法,同步方法比较简单,就不多说了,这里看下MathStub类中异步方法是如何处理的

[java] view plain copy
 
 在CODE上查看代码片派生到我的代码片
  1. ......  
  2. public  void startadd(  
  3.     com.sean.Add add2,  
  4.     final com.sean.MathCallbackHandler callback)  
  5.     throws java.rmi.RemoteException{  
  6. ......  
  7. callback.receiveResultadd(  
  8.     (com.sean.AddResponse)object);                                      
  9. catch (org.apache.axis2.AxisFault e) {  
  10.     cllback.receiveErroradd(e);  
  11. }  
  12. ......  

MathCallbackHandler是个抽象方法

[java] view plain copy
 
 在CODE上查看代码片派生到我的代码片
  1. ......  
  2. /** 
  3.     * auto generated Axis2 call back method for add method override this method 
  4.     * for handling normal response from add operation 
  5.     */  
  6. public void receiveResultadd(com.sean.AddResponse result) {}  
  7.   
  8. /** 
  9.     * auto generated Axis2 Error handler override this method for handling 
  10.     * error response from add operation 
  11.     */  
  12. public void receiveErroradd(java.lang.Exception e) {}  
  13. ......  

综上,实现了自己的异常处理类

[java] view plain copy
 
 在CODE上查看代码片派生到我的代码片
  1. package com.sean;  
  2.   
  3. public class MyMathCallbackHandler extends MathCallbackHandler {  
  4.       
  5.     @Override  
  6.     public void receiveResultadd(AddResponse result) {  
  7.         super.clientData = result;  
  8.     }  
  9.   
  10.     @Override  
  11.     public void receiveErroradd(Exception e) {  
  12.         System.out.println(e.getMessage());  
  13.     }  
  14. }  

接口调用方式如下

[java] view plain copy
 
 在CODE上查看代码片派生到我的代码片
  1. package com.sean;  
  2.   
  3. public class Test {  
  4.     public static void main(String[] args) throws Exception {  
  5.         Math math = new MathStub("http://127.0.0.1:8888/mockMathSoap12Binding");  
  6.         //sync  
  7.         Add add1 = new Add();  
  8.         add1.setArgs0(1);  
  9.         add1.setArgs1(2);  
  10.         AddResponse resp1 = math.add(add1);  
  11.         System.out.println(resp1.get_return());  
  12.           
  13.         //async  
  14.         Add add2 = new Add();  
  15.         add2.setArgs0(5);  
  16.         add2.setArgs1(6);  
  17.         MathCallbackHandler callback = new MyMathCallbackHandler();  
  18.         math.startadd(add2, callback);  
  19.         //As the method is not sync, can't get result immediately.  
  20.         Thread.sleep(1000);  
  21.         AddResponse resp2 = (AddResponse)callback.getClientData();  
  22.         System.out.println(resp2.get_return());  
  23.     }  
  24. }  

10,服务端生成代码如下:

是否选择生成Sleleton的接口类都可以,如果勾选,则会多生成一个MathSkeletonInterface类,MathSkeleton类变为该接口类的实现类,在MathMessageReceiverInOut中,由直接调用MathSkeleton类改为调用MathSkeletonInterface接口类,除此之外没有别的变化

MathSkeleton类中需要添加服务端的处理逻辑

[java] view plain copy
 
 在CODE上查看代码片派生到我的代码片
  1. /** 
  2.  * MathSkeleton.java 
  3.  * 
  4.  * This file was auto-generated from WSDL 
  5.  * by the Apache Axis2 version: 1.6.2  Built on : Apr 17, 2012 (05:33:49 IST) 
  6.  */  
  7. package com.sean;  
  8.   
  9. public class MathSkeleton implements MathSkeletonInterface {  
  10.     public com.sean.AddResponse add(com.sean.Add add0) {  
  11.         int a = add0.getArgs0();  
  12.         int b = add0.getArgs1();  
  13.         int result = a + b;  
  14.         AddResponse resp = new AddResponse();  
  15.         resp.set_return(result);  
  16.         return resp;  
  17.     }  
  18. }  
分享到:
评论

相关推荐

    使用Eclipse的Axis1.4插件开发Web Service及客户端

    通过以上步骤,开发者可以方便地在Eclipse环境中使用Axis1.4插件实现Web Service的发布和消费。需要注意的是,这只是一个基本示例,实际开发中可能需要处理更复杂的业务逻辑、数据类型转换以及错误处理等。 此外,...

    axis2支持webservice 自动生成代码客户端服务端代码插件

    标题提及的“axis2支持webservice 自动生成代码客户端服务端代码插件”,是指Apache Axis2为Eclipse IDE提供的一套工具,旨在简化Web服务的开发流程。这个插件允许开发者通过WSDL(Web Services Description ...

    org.apache.axis2.eclipse.codegen.plugin_1.7.8.jar

    Eclipse中使用Axis2插件生成Web Service服务端/客户端

    简单web service服务端和客户端例子

    在本案例中,“简单Web Service服务端和客户端例子”是一个教程,教你如何创建和使用基本的Web服务。我们将深入探讨服务端和客户端的实现,并讨论相关的关键技术。 1. **服务端开发**: - **SOAP (Simple Object ...

    eclipse的AXIS插件(开发WebServices的)第一个

    Eclipse的AXIS插件则为开发者提供了一种在集成开发环境中方便地构建、调试和部署Web Services的解决方案。本文将深入探讨AXIS插件在Eclipse中的应用及其相关知识点。 一、AXIS插件简介 AXIS插件是Eclipse IDE的一个...

    eclipse中axis2插件

    1. axis2-eclipse-codegen-plugin-1.6.4.zip:这是一个代码生成插件,允许开发者从WSDL(Web服务描述语言)文件自动生成Java客户端和服务端代码。通过这个插件,你可以轻松地从WSDL导入并生成服务接口、实现类以及...

    eclipse的axis2的插件

    Eclipse的Axis2插件是用于在Eclipse集成开发环境中创建、管理和调试基于Apache Axis2服务的工具。Apache Axis2是流行的Web服务引擎,它提供了高性能、灵活且可扩展的框架来实现SOAP(简单对象访问协议)服务。下面将...

    Eclipse中使用Axis服务器搭建Web Service

    ### Eclipse中使用Axis服务器搭建Web Service 的详细过程与知识点 #### 一、环境准备与配置 **1.1 软件下载准备** 为了在Eclipse中使用Axis服务器搭建Web Service,首先需要准备好一系列必要的软件资源。具体包括...

    axis2-eclipse-codegen-plugin-1.6.2和axis2-eclipse-service-plugin-1.6.2

    标题中的"axis2-eclipse-codegen-plugin-1.6.2和axis2-eclipse-service-plugin-1.6.2"指的是两个与Apache Axis2相关的Eclipse插件:Axis2代码生成插件和Axis2服务插件,它们是版本1.6.2的。Apache Axis2是一个流行的...

    axis2 eclipse 插件

    标题中的“Axis2 Eclipse 插件”指的是在Eclipse集成开发环境中用于支持Apache Axis2服务的扩展工具。Apache Axis2是流行的Web服务引擎,它提供了一种高效且灵活的方式来创建和部署SOAP(简单对象访问协议)服务。...

    Eclipse(或MyEclipse)中Axis2插件

    1. `axis2-eclipse-codegen-wizard.zip`:这是一个代码生成向导,它的主要功能是从现有的WSDL(Web Service Description Language)文件中自动生成客户端和服务端的Java代码。这大大减轻了开发者的负担,因为他们...

    Eclipse Axis2插件

    本文将深入探讨Eclipse Axis2插件的关键功能、优势以及如何在Eclipse集成开发环境中安装和使用。 1. **关键功能** - **代码生成**:Eclipse Axis2插件能够自动生成服务接口、实现类和服务部署文件,极大地减少了...

    Eclipse Axis2 集成插件

    Eclipse Axis2 集成插件是开发Web服务的重要工具,它允许开发者在Eclipse IDE环境中便捷地创建、测试和部署基于Apache Axis2的Web服务。Apache Axis2是Java世界中广泛使用的Web服务引擎,它提供了高性能、灵活且可...

    axis2 1.7.4 eclipse插件

    在本文中,我们将深入探讨“Axis2 1.7.4 Eclipse插件”,以及如何利用这些插件在Eclipse集成开发环境中(IDE)便捷地创建和管理Web服务。 标题中的“Axis2 1.7.4 Eclipse插件”指的是针对Apache Axis2版本1.7.4的两...

    axis1.4jar包以及WSDL和服务端代码互转方法

    本文将深入探讨如何使用Axis1.4.jar包以及Eclipse IDE来实现WSDL(Web Service Description Language)和服务端代码之间的相互转换。 首先,让我们了解WSDL。WSDL是一种XML格式的规范,用于定义网络服务的接口,...

    axis2-eclipse CodeGen和Service插件1.7.9

    标题提到的"axis2-eclipse CodeGen和Service插件1.7.9"就是针对Axis2的两个关键插件,它们为开发者提供了在Eclipse中方便地生成和管理Web服务的能力。 1. **Axis2 Eclipse CodeGen插件**: 这个插件的主要功能是...

    axis的eclispe插件axis的eclispe插件

    1. **Axis2 Eclipse Codegen Wizard**: 这个插件是用来生成Web服务客户端或服务器端代码的。当你有了一个WSDL(Web服务描述语言)文件时,通过这个向导,可以自动生成对应的Java代码,包括服务端的处理类和服务接口...

    eclipse下开发axis2

    - `axis2-eclipse-codegen-wizard.zip`:用于生成 Web 服务客户端和服务器端代码。 - `axis2-eclipse-service-archiver-wizard.zip`:用于将 Axis2 Web 服务打包成 WAR 文件以便部署。 - `axis2-1.5.1-bin.zip`:...

    Axis2 插件

    描述中提到的"Eclipse的Axis插件,用来生成Web Service WSDL 服务端客户端代码",这意味着该插件具备自动代码生成的能力。WSDL(Web Services Description Language)是Web服务的标准接口描述语言,定义了服务如何被...

    eclipse的axis插件 开发 webservice 例程

    这通常涉及到使用Axis的wsdl2java工具,或者在Eclipse/MyEclipse中使用"Generate Client"功能。 总结起来,通过Eclipse或MyEclipse的Axis插件,我们可以快速、便捷地开发和部署SOAP Web服务。从创建项目到编写接口...

Global site tag (gtag.js) - Google Analytics