`

Axis2-WebService框架的学习心得-01

阅读更多

    今天看了之前几天写的代码,关于WebService框架--Axis2的一些心得,总体我把Axis2的开发步骤和结构分为3部分:

     1.初始化组件:

     1.1 核心组件类:

                       RPCServiceClient--客户端服务类--建立全局的Axis2对象的基础核心组件

                       MessageContext--消息摘要上下文--建立全局 消息摘要的上下文组件,即使整体WebService系统框架的上下文操作。

                       EndpointReference--终结点外向指引--作为整体WebService框架的重要的核心组件。进行操作请求地址,

                      Options--操作选项--执行连接RPCServiceClient和EndpointReference两个最重要核心组 件,本身作为一个容器,进行存放EndpointReference组件

                       QName--webService框架的命名调用规范对象,包含两部分:名空间+方法名,

 

     1.2 自定义实体类:

         RPCModel对象实体信息类:

         以下就是我自定义的类型熟悉,仅供参考

          targetNameSpace--名空间

          targetMethodName--方法名

          targetServiceUrl--服务请求路径

          paramArray--参数数组文件

          overtime--超时时间

         returnType--返回类型

     2.创建服务端:

        private static RPCServiceClient invokeBase(RPCModel model) throws AxisFault{

                if(model == null)

                  throw new IllegalArgumentException("出现参数为空的异常!"); 

               EndpointReference edf = new EndpointReference(model.getTargetServiceUrl());

               Options options = RPCClientFactory.newInstance().initOptions();

               options.setTo(edf);

               RPCServiceClient client = RPCClientFactory.newInstance().initClient();

              MessageContext messgeContext = RPCClientFactory.newInstance().initMessageContext();

               messgeContext.setServiceContext(client.getServiceContext());

                MessageContext.setCurrentMessageContext(messgeContext);

               if(model.getOverTime() != null)

                  options.setTimeOutInMilliSeconds(model.getOverTime());

                 client.setOptions(options);

                 return client;

}

 

<?xml version="1.0" encoding="utf-8"?>

<service name="TestService">

 <description>

  testService

 </description>

 <messageReceivers>

 <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only" 

  class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver">

 </messageReceiver>

 <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out"

  class="org.apache.axis2.rpc.receivers.RPCMessageReceiver">

 </messageReceiver>

 </messageReceivers>

 <parameter name="ServiceClass">axisPro.test.TestService</parameter>

 

</service>

 

     3.调用服务端: 

        @Override

public void invokeNoReturnMethod(RPCModel model) {

try {

RPCServiceClient client = invokeBase(model);

Object [] params = model.getParamArray();

QName qName = new QName(model.getTargetNameSpace(),model.getTargetMethodName());

OMElement qm  = client.invokeBlocking(qName,params);

} catch (AxisFault e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

 

@Override

public Object invokeReturnMethod(RPCModel model) {

try {

RPCServiceClient client = invokeBase(model);

Object [] params = model.getParamArray();

QName qName = new                                   QName(model.getTargetNameSpace(),model.getTargetMethodName());

//Class [] returnType = new Class[]{String.class};

Object[] response  = client.invokeBlocking(qName,params,model.getReturnType());

return response[0];

} catch (AxisFault e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

       4.测试类:

public static void clientTest()

RPCInvokeService ris = new RPCInvokeImpl();

RPCModel model = new RPCModel();

model.setReturnType(new Class[]{String.class});

model.setTargetMethodName("test");

model.setTargetServiceUrl("http://127.0.0.1/axisPro/services/TestService");

model.setTargetNameSpace("http://test.axisPro");

model.setParamArray(new Object[]{"�"});

System.out.println(ris.invokeReturnMethod(model).toString());

 

}

 

分享到:
评论

相关推荐

    axis2-1.5.1-bin.zip axis2-1.5.1-war.zip axis2部署使用

    Apache Axis2是著名的开源Web服务框架,用于构建和部署高效且灵活的Web服务。这个框架是基于Axis1的升级版,提供了许多改进和新特性,包括更好的性能、模块化架构和增强的MIME支持。标题提到的“axis2-1.5.1-bin.zip...

    axis2c-bin-1.6.0 axis2c-src-1.6.0

    axis2c-bin-1.6.0-linux.tar.gz axis2c-bin-1.6.0-win32.zip axis2c-src-1.6.0.tar.gz axis2c-src-1.6.0.zip 加md5

    axis2-idea-plugin-1.7.9.zip_axis2_axis2-idea-plugin_idea导入axis2_

    标题中的"axis2-idea-plugin-1.7.9.zip_axis2_axis2-idea-plugin_idea导入axis2_"提到了几个关键元素,分别是"axis2"、"idea-plugin"和"idea导入axis2",这暗示了这个压缩包是用于在IntelliJ IDEA这款集成开发环境...

    axis2-WebService-开发指南.docx

    Axis2 是一个基于 Java 的开源 WebService 框架,具有高效、灵活、可扩展等特点。以下是对 Axis2 WebService 开发指南的知识点总结: 1. 环境准备: Axis2 的开发需要下载相关的 jar 包和 Eclipse 插件工具,可以...

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

    1. **Apache Axis2**:Apache Axis2是Apache软件基金会开发的SOAP(简单对象访问协议)和RESTful Web服务框架的第二代产品。它是基于模块化架构的,支持多种消息传递模式,如In-Only(单向)、In-Out(请求-响应)和...

    axis2-1.6.2.zip

    axis2-1.6.2.zip, windows axis2工具,根据 WSDL生成java文件。 1、axis2客户端下载地址:http://mirror.esocc.com/apache//axis/axis2/java/core/1.6.2/axis2-1.6.2-bin.zip; 2、下载解压在D:\Work_Program_...

    axis2-1.6.2

    axis2-1.6.2.zip, windows axis2工具,根据 WSDL生成java文件。 1、axis2客户端下载地址:http://mirror.esocc.com/apache//axis/axis2/java/core/1.6.2/axis2-1.6.2-bin.zip; 2、下载解压在D:\Work_Program_...

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

    Apache Axis2是一个流行的Web服务框架,用于创建和部署SOAP和RESTful服务。这两个插件是开发人员在Eclipse集成开发环境中(IDE)处理Axis2项目的重要工具。 1. **Axis2代码生成插件(codegen-plugin)**: 这个...

    axis2-webservice

    Axis2 是一个强大的Web服务框架,它由Apache软件基金会开发,用于构建和部署Web服务。在深入探讨Axis2之前,让我们先理解Web服务的基本概念。Web服务是一种通过互联网进行通信的应用程序接口(API),它使用统一的...

    axis2-eclipse-service与axis2-eclipse-codegen插件

    目前axis2最高版本是2.0以上的版本,但是eclipse和myeclipse都不支持,无奈只能使用低版本的插件1.6.3;经实验,可以安装成功; 安装方法:右键解压到当前文件夹,Copy解压的文件到eclipse安装目录dropins下,重启...

    axis2-1.6.1

    在实际应用中,开发人员可能需要配置Axis2服务器,创建和部署Web服务,处理服务调用,集成其他框架(如Spring),或者调试和优化服务性能。通过阅读`axis2-1.6.1-docs.zip`中的文档,可以深入了解这些过程和最佳实践...

    axis2-webservice新手教程实例

    总结来说,Apache Axis2 提供了一个强大且灵活的框架来创建和部署 Web 服务。通过本教程,你已经学习了如何设置开发环境、创建服务、生成客户端代码以及如何调用 Web 服务。随着进一步的学习,你将能够掌握更复杂的 ...

    axis2-1.4.1-bin.zip axis2-1.4.1-war.zip

    标题中的"axis2-1.4.1-bin.zip"和"axis2-1.4.1-war.zip"指的是Apache Axis2的两个不同版本的发行包,分别代表了Axis2的可执行二进制版本和Web应用程序版本。Apache Axis2是一个高度可扩展且功能强大的Web服务引擎,...

    axis2-1.6.2-war+axis2-1.6.1-war+axis2-1.6.2-bin

    标题中的"axis2-1.6.2-war+axis2-1.6.1-war+axis2-1.6.2-bin"表明这是一个包含不同版本的Apache Axis2服务框架的集合。Axis2是Apache软件基金会开发的一个Web服务引擎,它主要用于创建和部署Web服务以及处理SOAP消息...

    axis2-1.6.0-bin和axis2-1.6.0-war

    标题中的"axis2-1.6.0-bin"和"axis2-1.6.0-war"指的是Apache Axis2的不同发布版本。Apache Axis2是基于Java的Web服务引擎,它是Apache SOAP项目的下一代产品,用于创建和部署Web服务及处理SOAP消息。 **Apache Axis...

    Axis2--Webservice

    **描述:** Axis2 是一个强大的、可扩展的Web服务框架,由Apache软件基金会开发,用于构建和部署Web服务。它以其高效性、灵活性和模块化架构而闻名,是Java平台上Web服务实现的重要工具。 **Axis2 Web服务详解:** 1...

    webService 生成插件axis2-idea-plugin-1.7.8

    webService 生成插件axis2- idea-plugin-1.7.8

    axis2-adb-1.4.1.jar

    axis2-adb-1.4.1.jar axis2-adb-1.4.1.jar

    axis2-1.5.6完整版

    - **axis2-1.5.6-docs.zip**:这个压缩包包含了 Axis2 的文档,包括用户指南、API 文档和开发者指南,是学习和调试 Axis2 的重要参考资料。 在实际开发中,开发人员通常会先解压 `axis2-1.5.6-bin.zip`,配置 Axis2...

Global site tag (gtag.js) - Google Analytics