今天看了之前几天写的代码,关于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());
}
相关推荐
Apache Axis2是著名的开源Web服务框架,用于构建和部署高效且灵活的Web服务。这个框架是基于Axis1的升级版,提供了许多改进和新特性,包括更好的性能、模块化架构和增强的MIME支持。标题提到的“axis2-1.5.1-bin.zip...
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"和"idea导入axis2",这暗示了这个压缩包是用于在IntelliJ IDEA这款集成开发环境...
Axis2 是一个基于 Java 的开源 WebService 框架,具有高效、灵活、可扩展等特点。以下是对 Axis2 WebService 开发指南的知识点总结: 1. 环境准备: Axis2 的开发需要下载相关的 jar 包和 Eclipse 插件工具,可以...
1. **Apache Axis2**:Apache Axis2是Apache软件基金会开发的SOAP(简单对象访问协议)和RESTful Web服务框架的第二代产品。它是基于模块化架构的,支持多种消息传递模式,如In-Only(单向)、In-Out(请求-响应)和...
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.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_...
Apache Axis2是一个流行的Web服务框架,用于创建和部署SOAP和RESTful服务。这两个插件是开发人员在Eclipse集成开发环境中(IDE)处理Axis2项目的重要工具。 1. **Axis2代码生成插件(codegen-plugin)**: 这个...
Axis2 是一个强大的Web服务框架,它由Apache软件基金会开发,用于构建和部署Web服务。在深入探讨Axis2之前,让我们先理解Web服务的基本概念。Web服务是一种通过互联网进行通信的应用程序接口(API),它使用统一的...
目前axis2最高版本是2.0以上的版本,但是eclipse和myeclipse都不支持,无奈只能使用低版本的插件1.6.3;经实验,可以安装成功; 安装方法:右键解压到当前文件夹,Copy解压的文件到eclipse安装目录dropins下,重启...
在实际应用中,开发人员可能需要配置Axis2服务器,创建和部署Web服务,处理服务调用,集成其他框架(如Spring),或者调试和优化服务性能。通过阅读`axis2-1.6.1-docs.zip`中的文档,可以深入了解这些过程和最佳实践...
总结来说,Apache Axis2 提供了一个强大且灵活的框架来创建和部署 Web 服务。通过本教程,你已经学习了如何设置开发环境、创建服务、生成客户端代码以及如何调用 Web 服务。随着进一步的学习,你将能够掌握更复杂的 ...
标题中的"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"表明这是一个包含不同版本的Apache Axis2服务框架的集合。Axis2是Apache软件基金会开发的一个Web服务引擎,它主要用于创建和部署Web服务以及处理SOAP消息...
标题中的"axis2-1.6.0-bin"和"axis2-1.6.0-war"指的是Apache Axis2的不同发布版本。Apache Axis2是基于Java的Web服务引擎,它是Apache SOAP项目的下一代产品,用于创建和部署Web服务及处理SOAP消息。 **Apache Axis...
**描述:** Axis2 是一个强大的、可扩展的Web服务框架,由Apache软件基金会开发,用于构建和部署Web服务。它以其高效性、灵活性和模块化架构而闻名,是Java平台上Web服务实现的重要工具。 **Axis2 Web服务详解:** 1...
webService 生成插件axis2- idea-plugin-1.7.8
axis2-adb-1.4.1.jar axis2-adb-1.4.1.jar
- **axis2-1.5.6-docs.zip**:这个压缩包包含了 Axis2 的文档,包括用户指南、API 文档和开发者指南,是学习和调试 Axis2 的重要参考资料。 在实际开发中,开发人员通常会先解压 `axis2-1.5.6-bin.zip`,配置 Axis2...