`
raymond.chen
  • 浏览: 1441203 次
  • 性别: 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  

相关推荐

    第11讲:深入理解指针(1).pdf

    第11讲:深入理解指针(1)

    springboot整合 freemarker方法

    springboot整合 freemarker方法

    第14讲:深入理解指针(4).pdf

    第14讲:深入理解指针(4)

    同行者4.1.2语音助手

    《同行者4.1.2语音助手:车机版安装详解》 在现代科技日新月异的时代,智能车载设备已经成为了汽车生活的重要组成部分。"同行者4.1.2"便是这样一款专为车机设计的语音助手,旨在提供更为便捷、安全的驾驶体验。该版本针对掌讯全系列设备进行了兼容优化,让车主能够轻松实现语音控制,减少驾驶过程中的手动操作,提升行车安全性。 我们来了解下"同行者4.1.2"的核心功能。这款语音助手集成了智能语音识别技术,用户可以通过简单的语音指令完成导航、音乐播放、电话拨打等一系列操作,有效避免了因操作手机或车机带来的分心。此外,其强大的语义理解和自学习能力,使得它能逐步适应用户的口音和习惯,提供更个性化的服务。 在安装过程中,用户需要注意的是,"同行者4.1.2"包含了四个核心组件,分别是: 1. TXZCore.apk:这是同行者语音助手的基础框架,包含了语音识别和处理的核心算法,是整个应用运行的基础。 2. com.txznet.comm.base.BaseApplication.apk:这个文件可能包含了应用的公共模块和基础服务,为其他组件提供支持。 3. TXZsetting.apk:这

    市场拓展主管绩效考核表.xls

    市场拓展主管绩效考核表

    “线上购车3D全方位体验:汽车模型展示与个性化定制功能”,three.js案例- 线上购车3d展示(源码) 包含内容:1.汽车模型展示;2.汽车肤;3.轮毂部件更;4.开关车门动画;5.汽车尺寸测量

    “线上购车3D全方位体验:汽车模型展示与个性化定制功能”,three.js案例- 线上购车3d展示(源码) 包含内容:1.汽车模型展示;2.汽车肤;3.轮毂部件更;4.开关车门动画;5.汽车尺寸测量;6.自动驾驶;7.镜面倒影;8.hdr运用;9.移动端适配; 本为html+css+three.js源码 ,核心关键词:three.js案例; 线上购车3D展示; 汽车模型展示; 汽车换肤; 轮毂部件更换; 开关车门动画; 汽车尺寸测量; 自动驾驶; 镜面倒影; HDR运用; 移动端适配; HTML+CSS+three.js源码。,"Three.js源码:线上购车3D展示案例,含汽车模型、换肤、轮毂更换等九大功能"

    (数据权威)中国城市_县域统计面板数据二合一

    数据名称:2000-2022年各县市区主要社会经济发展指标面板数据 数据类型:dta格式 数据来源:中国县域统计

    120页-环卫车项目初步方案.pdf

    一、智慧环卫管理平台的建设背景与目标 智慧环卫管理平台的建设源于对环卫管理全面升级的需求。当前,城管局已拥有139辆配备车载GPS系统、摄像头和油耗传感器的环卫车辆,但环卫人员尚未配备智能移动终端,公厕也缺乏信息化系统和智能终端设备。为了提升环卫作业效率、实现精细化管理并节省开支,智慧环卫管理平台应运而生。该平台旨在通过信息化技术和软硬件设备,如车载智能终端和环卫手机App,实时了解环卫人员、车辆的工作状态、信息和历史记录,使环卫作业管理透明化、精细化。同时,平台还期望通过数据模型搭建和数据研读,实现更合理的环卫动态资源配置,为环卫工作的科学、健康、持续发展提供决策支持。 二、智慧环卫管理平台的建设内容与功能 智慧环卫管理平台的建设内容包括运行机制体制建设、业务流程设计、智慧公厕系统建设、网络建设、主机和储存平台需求、平台运维管理体系、硬件标准规范体系以及考核评价体系等多个方面。其中,智慧公厕系统建设尤为关键,它能实时监控公厕运行状态,保障公厕的清洁和正常运行。平台建设还充分利用了现有的电子政务网络资源,并考虑了有线和无线网络的需求。在功能上,平台通过普查、整合等手段全面收集环卫车辆、企业、人员、设施、设备等数据,建立智慧环卫基础数据库。利用智能传感、卫星定位等技术实现环卫作业的在线监管和远程监控,实现对道路、公共场所等的作业状况和卫生状况的全面监管。此外,平台还建立了环卫作业网格化管理责任机制,实现从作业过程到结果的全面监管,科学评价区域、部门、单位和人员的作业效果。 三、智慧环卫管理平台的效益与风险规避 智慧环卫管理平台的建设将带来显著的环境、经济和管理效益。环境方面,它将有力推进环境卫生监管服务工作,改善环境卫生状况,为人民群众创造更加清洁、卫生的工作和生活环境。经济方面,通过智慧化监管,大大降低了传统管理手段的成本,提高了监管的准确性和效率。管理方面,平台能够追踪溯源市民反映的问题,如公厕异味、渣土车辆抛洒等,并找到相应的责任单位进行处置,防止类似事件再次发生。同时,平台还拥有强大的预警机制功能,能够在很多环卫问题尚未出现前进行处置。然而,平台建设也面临一定的风险,如部门协调、配合问题,建设单位选择风险以及不可预测的自然灾害等。为了规避这些风险,需要加强领导、统一思想,选择优秀的系统集成商承接项目建设,并做好计算机和应用系统的培训工作。同时,也要注意标准制定工作和相关法律法规的制定工作,以保证系统建设完成后能够真正为环卫管理工作带来便利。

    36 -企业管理主管绩效考核表1.xlsx

    36 -企业管理主管绩效考核表1

    1.1 -1.4 工程代码

    1.1 -1.4 工程代码

    USDT合约,USDT智能合约

    USDT合约,USDT智能合约

    基于姿态估计三维人脸形状重建.pdf

    基于姿态估计三维人脸形状重建.pdf

    一般员工绩效考核表模板(通用版) (2).xls

    一般员工绩效考核表模板(通用版) (2)

    全国295个地级市2011-2022互联网宽带接入用户数互联网普及率(数据权威)

    全国各省295地级市互联网普及率、互联网用户数、每百人互联网宽带用户(2011-2022年) 数据年份:2011-2022年(2022存在部分缺失) 数据范围:全国各省295个地级市 数据来源:地方统计局

    (数据权威)碳排放、碳中和、碳交易、碳金融、碳计算、碳建模资料

    一、各省、分行业CO2排放、283个地级市碳排放及计算过程 2.分行业二氧化碳排放量 在这里插入图片描述 3、280多个地级市碳排放及计算过程 二、碳中和文献、最新政策、碳金融数据+数学建模 1.二氧化碳减排规划,碳金融数据收集及数学建模 2.碳中和政策和下载量最高的碳中和论文 三、碳排放+碳市场+碳交易+碳中和+碳排放核算Excel自动计算表 全行业碳排放核算Excel自动计算表 四、碳交易数据 五、主要能源碳排放计算参数

    第20讲:自定义类型:结构体.pdf

    第20讲:自定义类型:结构体

    视觉跟踪算法综述.pdf

    视觉跟踪算法综述.pdf

    MATLAB超效率SBM-DEA模型代码详解:简易操作指南及期望与非期望产出的超效率分析,附Malmquist指数与分解功能,MATLAB的超效率SBM-DEA模型代码(有安装教程和内容讲解之类的东西

    MATLAB超效率SBM-DEA模型代码详解:简易操作指南及期望与非期望产出的超效率分析,附Malmquist指数与分解功能,MATLAB的超效率SBM-DEA模型代码(有安装教程和内容讲解之类的东西),操作很简单 可以做期望产出和非期望产出的超效率和非超效率sbm模型和Malmquist指数和分解 ,MATLAB; SBM-DEA模型; 超效率SBM-DEA; 安装教程; 内容讲解; 期望产出; 非期望产出; 超效率与非超效率sbm模型; Malmquist指数; 分解。,"MATLAB超效SBM-DEA模型代码:非期望产出分析的便捷工具"

    人事行政主管绩效考核评分表.xls

    人事行政主管绩效考核评分表

    人力资源管理工具绩效考核excel模板.xlsx

    人力资源管理工具绩效考核excel模板

Global site tag (gtag.js) - Google Analytics