Java中启用Apache Axis2的异步Web服务调用示例
在Java中启动Axis2服务是一个常见的任务,特别是在构建基于Web服务的应用程序时。Axis2是一个开源的消息中间件,用于实现企业服务总线(ESB)和Web服务框架,它支持多种协议和服务交互模式,包括异步通信。本文档提供了如何在Java环境中启动一个带有WS-Addressing支持的Axis2服务器的示例,这是一种重要的功能,因为它允许服务请求在发送后立即返回客户端,而无需等待响应完成。 首先,让我们了解背景。WS-Addressing是Web服务标准之一,它定义了如何在服务之间交换元数据,如发送者、接收者地址以及路由和事务信息。在Axis2中启用此功能对于实现分布式系统中的高效通信至关重要。 在提供的代码片段中,我们看到一个名为`AddressingEnableServer`的类,它包含了启动带有WS-Addressing的Axis2服务器的步骤。以下是关键部分的解释: 1. 导入必要的Axis2包:这些包包含了轴心引擎(AxisServer)、配置上下文(ConfigurationContext)、工厂类(ConfigurationContextFactory)、HTTP服务器(SimpleHTTPServer)、服务描述(AxisService)、参数(Parameter)和Java到WSDL转换相关的常量(Java2WSDLConstants)。 2. `public static void main(String[] args) throws Exception` 方法:这是程序的主入口点,通过参数接收命令行输入。 3. 在方法内部,首先创建一个`ConfigurationContext`对象,这是Axis2的核心组件,用于存储配置信息。 4. 使用`ConfigurationContextFactory.createConfigurationContextFromFileSystem()`方法初始化配置上下文,这通常是从XML配置文件加载配置信息。 5. 接着,创建一个`AxisServer`实例,这是Axis2的核心服务运行容器,用于管理服务和处理请求。 6. 创建一个`AxisService`对象,这个对象代表一个具体的Web服务,可能包含多个操作。在这个例子中,服务尚未具体定义,但我们需要设置一些参数来启用WS-Addressing。 7. 使用`Parameter`对象添加WS-Addressing相关的参数,例如`enableAddressing`,将其值设为`true`以激活地址处理功能。此外,可能还需要配置其他地址策略和选项。 8. 在创建服务时,将地址处理参数添加到服务描述中,这可以通过`addParameter()`方法实现。 9. 由于实际应用中通常不会直接在启动代码中这样创建和启动服务器,这段代码只是一个演示性的例子。在生产环境中,可能需要处理更多的细节,比如服务注册、日志配置、错误处理等。 10. 最后,通过调用`AxisServer.start()`方法启动服务器,使得服务可以在网络上监听请求。如果一切配置正确,此时服务就具备了异步通信的能力。 总结来说,这段代码展示了在Java中如何使用Axis2框架启动一个支持WS-Addressing的服务器,这对于实现高性能、异步的Web服务至关重要。通过正确的配置和参数设置,开发者可以利用Axis2的强大功能来构建复杂的分布式应用程序架构。
February 5, 2010
By Deepal Jayasinghe
Bio »
Send Email »
More Articles »
Transport-level Asynchronous Support Example
Now let's use full asynchronous support in Axis2, which requires WS-Address support for both the client and server sides. You can engage the addressing module on the server side using any of the available ways for doing that, but in this example, you use the following source code to start Axis2 and engage addressing (in real life, however, you would not use the following code to start Axis2).
1 package org.sample;
2
3 import org.apache.axis2.engine.AxisServer;
4 import org.apache.axis2.context.ConfigurationContext;
5 import org.apache.axis2.context.ConfigurationContextFactory;
6 import org.apache.axis2.transport.http.SimpleHTTPServer;
7 import org.apache.axis2.description.AxisService;
8 import org.apache.axis2.description.Parameter;
9 import org.apache.axis2.description.java2wsdl.Java2WSDLConstants;
10
11 public class AddressingEnableServer {
12 public static void main(String[] args) throws Exception{
13 ConfigurationContext configurationContext =
ConfigurationContextFactory.createConfigurationContextFromFileSystem(null, null);
14 SimpleHTTPServer smt = new SimpleHTTPServer(configurationContext, 8080);
15 AxisService service1 =
AxisService.createService(EchoService.class.getName(),
configurationContext.getAxisConfiguration());
17 configurationContext.getAxisConfiguration().addService(service1);
18 smt.start();
19 }
20 }
21
Now let's run the code. You will be able to access the service from http://localhost:8080/axis2/services/EchoService.
As previously mentioned, you also need to engage addressing on the client side. You can do that as follows:
Post a comment
Email Article
Print Article
Share Articles
Digg
del.icio.us
Slashdot
DZone
StumbleUpon
FriendFeed
Furl
Newsvine
MySpace
剩余6页未读,继续阅读
- 粉丝: 0
- 资源: 37
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Ansys Comsol实现力磁耦合仿真及其在电磁无损检测中的应用
- 西门子数控系统调试与配置实战案例教程
- ELM多输出拟合预测模型:简易Matlab实现指南
- 一维光子晶体的Comsol能带拓扑分析研究
- Borland-5技术资料压缩包分享
- Borland 6 技术资料分享包
- UE5压缩包处理技巧与D文件介绍
- 机器学习笔记:深入探讨中心极限定理
- ProE使用技巧及文件管理方法分享
- 增量式百度图片爬虫程序修复版发布
- Emlog屏蔽用户IP黑名单插件:自定义跳转与评论限制
- 安装Prometheus 2.2.1所需镜像及配置指南
- WinRARChan主题包:个性化你的压缩软件
- Neo4j关系数据映射转换测试样例集
- 安装heapster-grafana-amd64-v5-0-4所需镜像介绍
- DVB-C语言深度解析TS流