Axis2是由大家熟悉的Axis1.x系列演化过来,对它进行了彻底的重写,它使用了新的模块化架构,更方便于功能性的扩展等等。
Axis2支持WS-Addressing、WS-RM、WS-Security和WS-I BasicProfile,WS-Policy将在新版本里得到支持。
Axis2支持更多的data bindings,包括XMLBeans、JiBX、JaxMe和JaxBRI,以及它原生的data binding(ADB)。
一、范例测试环境:
axis2-1.5.1
jdk1.5.0_15
apache-tomcat-5.5.23
二、部署步骤
1、将Axis2的二进制工程axis2-1.5.1-bin.zip解压到C:\axis2-1.5.1。设置环境变量AXIS2_HOME=C:\axis2-1.5.1,在Path环境变量追加“%AXIS2_HOME%\bin”串。
2、新增一个web工程(工程名为axis2),将Axis2自带的axis2.war范例中WEB-INF下的conf、lib、modules、services文件夹拷贝到新工程的WEB-INF下。
3、在web.xml文件中增加以下配置信息:
<servlet>
<servlet-name>Axis2Servlet</servlet-name>
<servlet-class>org.apache.axis2.transport.http.AxisServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Axis2Servlet</servlet-name>
<url-pattern>*.jws</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Axis2Servlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
4、增加一个用于作为WebService发布的java类,源码如下:
package com.achievo.ws;
import com.achievo.bean.UserBean;
public class SimService {
public String sayHello(String name){
return "Hello " + name;
}
public Double getPrice(){
return 123.45;
}
public String[] getArray(){
String[] arr = new String[2];
arr[0] = "11111";
arr[1] = "22222";
return arr;
}
public UserBean getUser(){
UserBean user = new UserBean("cjm", "123");
return user;
}
}
package com.achievo.bean;
public class UserBean {
private String username;
private String password;
public UserBean(){
}
public UserBean(String uid, String pwd){
this.username = uid;
this.password = pwd;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
5、在WEB-INF\services\目录下新增一个文件夹sim(名称随意),在sim文件夹中增加一个子文件夹META-INF,在META-INF中增加一个名为services.xml的文件,该xml文件的信息如下:
<serviceGroup>
<service name="SimService" scope="application">
<description>Sim Service</description>
<messageReceivers>
<messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only" class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver"/>
<messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out" class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
</messageReceivers>
<parameter name="ServiceClass">com.achievo.ws.SimService</parameter>
</service>
</serviceGroup>
表示将com.achievo.ws.SimService类以SimService名称发布为WebService。
6、将新工程部署到Tomcat,并启动Tomcat。在浏览器的地址中输入以下URL:
http://localhost:8888/axis2/services/SimService?wsdl,如果正常显示wsdl定义信息,则表示部署成功。
7、新工程目录结构
![](http://dl.iteye.com/upload/attachment/194230/1c7cedd4-afd3-3da4-94c0-786065739dc7.jpg)
三、应用范例
1、在DOS中定位到C:\axis2-1.5.1\bin目录,然后执行以下指令:
wsdl2java -uri http://localhost:8888/axis2/services/SimService?wsdl -p com.achiveo.ws -s -o stub
-url参数:指定了wsdl文件的路径
-p参数:指定了生成的Java类的包名
-o参数:指定了生成的一系列文件保存的根目录
2、将生成的SimServiceStub.java文件引用到测试工程中。
3、测试类代码如下:
public class Test {
public static void main(String[] args) {
try{
SimServiceStub stub = new SimServiceStub();
//方法返回字符串值
SayHello sayHello = new SimServiceStub.SayHello();
sayHello.setName("cjm");
SimServiceStub.SayHelloResponse res = stub.sayHello(sayHello);
String result = res.get_return();
System.out.println(result);
//方法返回double值
System.out.println(stub.getPrice().get_return());
//方法返回数组
String[] arr = stub.getArray().get_return();
if(arr!=null && arr.length>0){
for(int i=0;i<arr.length;i++){
System.out.println(arr[i]);
}
}
//方法返回bean对象
SimServiceStub.UserBean user = stub.getUser().get_return();
System.out.println(user.getUsername() + ", " + user.getPassword());
}catch(Exception ex){
ex.printStackTrace();
}
}
}
MonicaServicesImplServiceStub stub = new MonicaServicesImplServiceStub();
MonicaServicesImplServiceStub.CreatePnr createPnr = new MonicaServicesImplServiceStub.CreatePnr();
createPnr.setArg0(companyCode);
createPnr.setArg1(workNo);
createPnr.setArg2(officeNo);
createPnr.setArg3(pid);
createPnr.setArg4(passengerIds);
createPnr.setArg5(airCodes);
createPnr.setArg6(isDomestic);
CreatePnrE createPnrE = new MonicaServicesImplServiceStub.CreatePnrE();
createPnrE.setCreatePnr(createPnr);
CreatePnrResponseE createPnrResponseE = stub.createPnr(createPnrE);
String result = createPnrResponseE.getCreatePnrResponse().get_return();
System.out.println(result);
如果是通过代理访问公网,那么在调用webservice方法之前需要设置代理属性:
ProxyProperties proxyProperties = new ProxyProperties();
proxyProperties.setProxyName("xxx.xxx.xxx.xxx");
proxyProperties.setProxyPort(80);
options.setProperty(HTTPConstants.PROXY, proxyProperties);
options.setProperty(HTTPConstants.HTTP_PROTOCOL_VERSION, HTTPConstants.HEADER_PROTOCOL_10);
options.setTimeOutInMilliSeconds(10000);
也可以将class类打包成aar文件,然后发布成WebService
1、将class类和services.xml文件拷贝到一个新的目录中,目录结构如下图:
class类与包目录结构一致,services.xml文件放到META-INF文件夹中。
![](http://dl.iteye.com/upload/attachment/194226/fd7b9ec4-d2ca-323a-b308-231761bb7c34.jpg)
2、 在DOS中定位到../aar/sim目录中,然后执行以下命令:
jar cvf SimService.aar . (注意最后那个点哦),将会在../aar/sim目录中生成SimService.aar文件。
3、将SimService.aar文件拷贝到WEB-INF\services\目录下,此时,services目录的结构应该为:
![](http://dl.iteye.com/upload/attachment/194228/98ea4e58-001d-3a17-b017-368a4acc4541.jpg)
四、将Axis2整合到Spring环境
1、在web.xml文件中增加以下配置信息:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>WEB-INF/applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
2、将要作为WebService发布的java类配置为一个bean:
<bean id="simService" class="com.achievo.ws.SimService"/>
3、将services.xml文件的内容调整为以下信息:
<serviceGroup>
<service name="SimService" scope="application">
<description>SimService</description>
<parameter name="ServiceObjectSupplier">
org.apache.axis2.extensions.spring.receivers.SpringServletContextObjectSupplier
</parameter>
<parameter name="SpringBeanName">simService</parameter>
<messageReceivers>
<messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only" class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver"/>
<messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out" class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
</messageReceivers>
</service>
</serviceGroup>
![点击查看原始大小图片](http://dl2.iteye.com/upload/attachment/0019/4226/fd7b9ec4-d2ca-323a-b308-231761bb7c34-thumb.jpg)
- 大小: 11.4 KB
![点击查看原始大小图片](http://dl2.iteye.com/upload/attachment/0019/4228/98ea4e58-001d-3a17-b017-368a4acc4541-thumb.jpg)
- 大小: 2.8 KB
![点击查看原始大小图片](http://dl2.iteye.com/upload/attachment/0019/4230/1c7cedd4-afd3-3da4-94c0-786065739dc7-thumb.jpg)
- 大小: 42.1 KB
分享到:
相关推荐
Axis2 是一个流行的Java Web服务实现框架,它提供了一种高效、灵活且可扩展的方式来部署和使用Web服务。本文将详细介绍如何使用Axis2部署WebService,适合初学者了解和学习。 首先,部署Axis2 WebService的基本步骤...
删除该包后,Weblogic Server 10.3可以正确地部署应用程序。 相关知识点 1. Weblogic Server 10.3的XML Input Factory机制 Weblogic Server 10.3使用了XML Input Factory机制来解析XML文件。在该机制下,Weblogic ...
axis2在实际应用中的比较广泛的一种部署方式。同我发布的hessina接口实例一样,也是比较简单的实例。可以直接下载运行
【标题】: 使用Axis2+Tomcat5.5+Eclipse3.2部署和访问Web服务详解 【描述】: 本教程将详细介绍如何利用Axis2、Tomcat5.5和Eclipse3.2来部署和访问Web服务,涵盖从下载安装到实际操作的全过程。 【标签】: Axis2 ...
本教程旨在帮助开发者理解和掌握利用Axis2构建和部署Web Services的流程,包括服务端和客户端的应用程序开发。 1.2 相关背景 Web Services是一种基于开放标准的软件架构,允许不同系统间的互操作性。Axis2是Apache ...
Axis2 的开发方式类似一个小型的应用服务器,Axis2 的开发包要以 WAR 的形式部署到 Servlet 容器中。Axis2 的 Web administrion 模块可以让我们动态的配置 Axis2。 CXF 是一种基于 XFire 和 Celtix 项目的结合产品...
通过以上内容,我们可以了解到Axis2作为一个强大的Web服务引擎,它提供了一套全面的工具和框架,使得开发者可以高效地构建和部署Web服务,同时支持多种通信协议和数据格式,极大地推动了服务化和跨平台集成的发展。...
在IT行业中,Axis2是一个广泛使用的Web服务框架,它基于Apache SOAP(Simple Object Access Protocol)实现,用于构建和部署Web服务。本篇文章将详细介绍如何配置Axis2以及生成客户端。 首先,配置Axis2需要两个...
Axis2是Apache软件基金会开发的一个开源项目,它是一个基于SOAP(简单对象访问协议)和WS-*标准的服务架构,用于构建和部署Web服务。在本文中,我们将深入探讨如何在Axis2环境中发布和测试Web服务。 首先,我们创建...
2. **实战经验**:通过三个项目的实践,学习者能掌握AXIS2的核心技术和不同技术间的整合,理解在实际项目中如何选择和应用合适的技术。 ### 学习资源 教程提供了一套完整的WebService电子书教程、20多讲教学视频,...
axis2服务端的各种写法及客户端的用法及helloworld代码,包配环境部署文件axis2.war 其中 services文件 - - <!-- 实现的服务类,locked 锁定 xsd:false 一种格式 --> ...
AXIS2是Apache软件基金会提供的一个轻量级、高性能的Web Service框架,它提供了完整的Web Service生命周期管理,包括生成、部署和服务调用。 ### 简介 AXIS2是构建在SOAP协议上的,它支持SOAP 1.1和1.2版本,并且...
Axis2 是一个流行的开源Web服务框架,用于创建和部署Web服务。它基于Apache Axis1,提供了更高效、可扩展和模块化的架构。本篇将详细讲解如何配置、发布和调用Axis2 Web服务。 首先,我们需要进行一些准备工作。...
- 在配置设置中,选择合适的Server(例如Tomcat 6.0)和Web Service运行时(Apache Axis2)。 5. **启动服务**: - 点击"start server"按钮启动Tomcat服务器。等待服务器启动完成后,按照向导的提示进行下一步...
本手册将提供详细的教程和示例,帮助开发者快速掌握Axis2的使用方法,包括创建、部署Web服务,定制模块,以及使用Rampart和Sandesha等附加组件。通过学习,开发者将能够充分利用Axis2的优势,构建高效、安全的Web...
【标题】: "axis2+Tomcat5+Eclipse3.2部署和访问Web服务" 【描述】: 使用axis2、Tomcat5.5和Eclipse3.2进行Web服务的部署与访问 【标签】: axis2, tomcat5, eclipse3.2 在本文中,我们将详细介绍如何利用axis2、...
1. axis2-1.1.1.rar中包含工程中所需的axis2的类包。 2. axis2.war是打包好的web应用。用于放在Tomcat中,当运行Tomcat后会自动解压。...具体的部署步骤和使用请参照《(原创)用Eclipse + Axis2+Tomcat创建Web Service》
- 二进制包 (`axis2-1.4.1-bin.zip`) 包含了 Axis2 运行时环境,而 WAR 文件 (`axis2-1.4.1-war.zip`) 可以用于在应用服务器(如 Tomcat)上部署 Axis2。 2. **部署 Axis2 在 Tomcat** - 将下载的 WAR 文件放到 ...
由于其灵活性和丰富的特性,Axis2在不同场景下都有着广泛的应用,比如作为服务端接口发布Java类的方法,使得不同客户端能够进行调用,实现了跨平台的技术集成。此外,Axis2在面向服务架构(SOA)中也扮演着重要角色...
Apache Axis2是一个流行的Web服务引擎,用于构建和部署SOAP(简单对象访问协议)和RESTful Web服务。 首先,搭建环境是关键步骤。你需要下载Axis2的二进制包和WAR文件,确保版本是最新的。在本例中,使用的版本是...