`
raymond.chen
  • 浏览: 1436774 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Axis2的部署和应用

阅读更多

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、新工程目录结构

三、应用范例

     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文件夹中。

      2、 在DOS中定位到../aar/sim目录中,然后执行以下命令:

            jar cvf SimService.aar . (注意最后那个点哦),将会在../aar/sim目录中生成SimService.aar文件。

 

       3、将SimService.aar文件拷贝到WEB-INF\services\目录下,此时,services目录的结构应该为:
 

 

四、将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>

 

  • 大小: 11.4 KB
  • 大小: 2.8 KB
  • 大小: 42.1 KB
5
0
分享到:
评论
1 楼 a1006458222 2017-01-11  

相关推荐

    axis2安装和部署

    本文将详细介绍如何在Windows和Unix/Linux环境下,利用Apache Axis2和Tomcat5.5来安装和部署Web服务。 首先,我们来看一下必要的环境准备。为了开发基于Axis2的Web服务,你需要一个Web容器,这里选用的是Tomcat5.5...

    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...

    axis2独立部署简单实例

    Apache Axis2是Java平台上的一款强大的Web服务引擎,它允许开发者创建、部署和管理Web服务。这个实例是为了展示如何不依赖任何应用服务器,直接在本地环境中启动和运行Axis2服务。 在实际应用中,Axis2的独立部署...

    将应用部署在weblogic中于axis2冲突的问题及解决方案

    删除该包后,Weblogic Server 10.3可以正确地部署应用程序。 相关知识点 1. Weblogic Server 10.3的XML Input Factory机制 Weblogic Server 10.3使用了XML Input Factory机制来解析XML文件。在该机制下,Weblogic ...

    Axis2部署安装.doc

    本教程将详细介绍如何在MyEclipse 8.0环境中进行Axis2的部署和安装,以及创建并部署一个简单的Web服务。 **一、环境准备** 在开始之前,确保已准备好以下软件: 1. Tomcat服务器:Apache Tomcat 6.0.18 2. Axis2 ...

    部署axis2c的文档

    ### 部署Axis2c Web Service:详细指南与步骤 ...通过遵循上述步骤,开发者能够在Windows或Linux平台上成功部署并运行Axis2c Web服务,进一步集成到其应用系统中,实现跨平台、跨语言的服务交互。

    weblogic部署Axis2

    在WebLogic服务器上部署Axis2,可以将Axis2作为应用程序来运行,以便利用WebLogic的管理和部署功能。 首先,我们需要了解WebLogic服务器的基本概念。WebLogic是Oracle提供的一个企业级Java EE应用服务器,用于部署...

    axis和axis2的一些发布差异(WSDL2Java) 收藏

    通过对Axis与Axis2在使用WSDL2Java工具时的不同之处的详细探讨,我们可以看到,虽然两种工具都实现了相似的功能,但Axis2在很多方面都进行了优化和改进,尤其是在命令行参数、部署描述文件生成以及数据绑定等方面。...

    Axis_API和axis2_API

    在IT行业中,Web服务是应用程序之间进行通信的一种标准方法,而Axis和Axis2是两种流行的Java SOAP(简单对象访问协议)框架,用于构建和消费Web服务。本文将深入探讨这两个API,以及它们在Web服务开发中的作用。 ...

    axis1.4和axis2相关jar文件

    4. **服务组件化**:Axis2引入了Web服务组件(Web Service Components, WSCs),如Service Skeletons和Service Archives,简化了服务开发和部署。 5. **更好的WSDL支持**:Axis2提供了更强大的WSDL处理能力,包括...

    axis2的API,axis2 API,axis2帮助文档

    本文将详细介绍Axis2的API及其在Web服务开发中的应用,同时也会探讨Axis2的帮助文档如何协助开发者更好地理解和使用这个框架。 ### Axis2简介 Axis2是Apache Axis的第二代版本,它在第一代的基础上进行了许多改进和...

    Axis1,Axis2,Xfire,CXF区别

    Axis2 的开发方式类似一个小型的应用服务器,Axis2 的开发包要以 WAR 的形式部署到 Servlet 容器中。Axis2 的 Web administrion 模块可以让我们动态的配置 Axis2。 CXF 是一种基于 XFire 和 Celtix 项目的结合产品...

    axis2-1.6.1

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

    axis1.4 部署webservice说明

    Axis1.4是Apache软件基金会开发的一个开源Java框架,用于创建和部署Web服务。这个框架在Web服务领域中扮演着重要角色,特别是在早期的Web服务实现中。标题和描述提到的知识点主要集中在如何使用Axis1.4来部署Web服务...

    axis 1.x与axis2.x开发

    此外,Axis2.x采用了模块化架构,使得服务和处理逻辑可以独立部署和更新,增强了灵活性和可维护性。它还支持MTOM(Message Transmission Optimization Mechanism)和SwA(Soap with Attachments),有效优化了带有二...

    springboot集成axis2-1.7.9实例

    1. **添加依赖**:在Spring Boot的`pom.xml`文件中,我们需要引入Axis2和Spring Boot的Web服务支持依赖。具体而言,需要包含Axis2的核心库和Spring Web Services模块。例如: ```xml &lt;groupId&gt;org.apache.axis2...

    Axis2 接口生成wsdl工具

    部署后,Axis2将作为Tomcat的一个Web应用程序运行,提供Web服务的发布和访问功能。 **4. 相关组件和目录** - `conf`:包含Axis2的配置文件,如axis2.xml,用于设置服务的行为和策略。 - `webapp`:包含了Axis2的Web...

Global site tag (gtag.js) - Google Analytics