Web Service基础篇(一)之AXIS2
来源:互联网 发布:爱因斯坦人工智能名言 编辑:程序博客网 时间:2024/05/16 18:49
一、AXIS2简介
AXIS2是WebService/SOAP/WSDL的引擎,是Appache AXIS 1.x的衍生版。支持更强的模块化、更高的灵活性、更有效地体系结构,可以更容易地与其他
Web Service 服务标准与协议(如 WS-Security、WS-ReliableMessaging 等)结合。 具有以下特点:
- 采用AXIOM的XML处理模型,支持灵活定义对象模型。
- 支持不同的消息交换模式:In-Only、Robust-In和In-Out 。In-Only消息交换模式只有SOAP请求,而不需要应答;Robust-In消息交换模式发送SOAP请求,只有在出错的情况下才返回应答;In-Out消息交换模式总是存在SOAP请求和应答。
- 提供阻塞与非阻塞的API。< 内置的服务寻址(WebService-Addressing)。
- 数据绑定与Web Service发布方式:支持POJO(Plain Old Java Object)、AXIOM、XMLBeans、JiBX、JAXB 2.0等。
- 全新的部署模型,支持热部署、热更新。
- 支持HTTP、SMTP、JMS、TCP传输协议。
- 支持REST(Representational State Transfer)。
二、AXIS2的下载与部署
1.首先,在客户机安装appache tomcat以及jdk基础环境。
2.下载AXIS2的压缩包( 目前,AXIS2的最新版本是1.6.3(2015.6.27)。本文下载1.6.2(2012.4.17)版本。)
下载列表:
axis2-1.6.2-bin.zip AXIS2完整版,支持WS-Addressing与SOAP-Moniter
axis2-1.6.2-war.zip AXIS2 Web容器部署版本
3.解压axis2-1.6.2-war.zip文件,然后将axis2.war文件拷贝到<Tomcat安装目录>\webapps目录,启动Tomcat,在浏览器地址栏输入AXIS2的http://localhost:8080/axis2/,axis2.war会自动解压缩,如果,显示AXIS2的主页面则表示加载成功。
三、编写与发布Web Service
(1) POJO方式(无需任何配置)
无需任何配置,即可让POJO类部署成AXIS2中的Web Service。
1.1 编写POJO类
<span style="font-family:Microsoft YaHei;font-size:12px;font-weight: normal;">public class AXISHelloService { public String sayHello(){ return "Hello AXIS"; } public String sayHelloToPerson(String name){ if(name==null){ name = "no body"; } return "AXIS Hello,"+name; }}</span>
1.2 发布WebService
编译AXISHelloService类后,将AXISHelloService.class文件拷贝到<Tomcat安装目录>\webapps\axis2\WEB-INF\pojo目录中。现在,AXISHelloService已经发
布成服务。
在浏览器地址栏中输入如下的URL,查看服务列表:
http://localhost:8080/axis2/services/listServices
在浏览器中输入两个URL测试sayHello与sayHelloToPerson方法:
http://localhost:8080/axis2/services/AXISHelloService/sayHello
http://localhost:8080/axis2/services/AXISHelloService/sayHelloToPerson?name=Jack
<ns:sayHelloToPersonResponse xmlns:ns="http://ws.apache.org/axis2"> <return>AXIS Hello,Jack</return></ns:sayHelloToPersonResponse>
1.3 注意事项
在编写POJO类、发布与测试AXIS2.0 Web Service时,注意以下方面:
- POJO不能使用package关键字声明包。
- AXIS2默认,热发布Web Service是启用。即只要将Web Service的.class文件复制到pojo目录时,tomcat无需重新启动,即可自动发布Web Service。Web Service热发布的配置项在<Tomcat安装目录>\webapps\axis2\WEB-INF\conf\axis2.xml文件中,找到如下配置项:
<parameter name="hotdeployment">true</parameter>
- AXIS2默认,热更新Web Service是关闭。即一旦发布Web Service,再更新Web Service,必须重启Tomcat。如果想设置AXIS2是热更新,则修改axis2.xml的以下配置项:
- 在Web浏览器测试WebService时,必须使用URL的请求参数来指定WebService方法的SOAP请求参数。
- 发布Web Service的默认路径是<Tomcat安装目录>\webapps\axis2\WEB-INF\pojo,可以添加其他路径,编辑axis2.xml文件,在<axisconfig name="AxisJava2.0">节点之间,添加如下配置项,即可让<Tomcat安装目录>\webapps\axis2\WEB-INF\deployPOJO路径成为发布Web Service的目录:
<deployer extension=".class" directory="deployPOJO" class="org.apache.axis2.deployment.POJODeployer"/>
2.1 .aar压缩包格式
2.1.1 编写POJO类
package com.efo.service;import java.text.DecimalFormat;/** * Created by Jack Lee on 2015/11/21. * */public class CalculateService { /** * a plus b * @param a * @param b * @return a + b */ public float plus(float a,float b){ return a+b; } /** * a minus b * @param a * @param b * @return a - b */ public float minus(float a,float b){ return a -b; } /** * a multi b * @param a * @param b * @return a * b */ public float multi(float a,float b){ return a * b; } /** * a divide b * @param a * @param b * @return a / b */ public float divide(float a, float b){ if(b==0){ return -1; } DecimalFormat decimalFormat = new DecimalFormat("#.##"); return Float.parseFloat(decimalFormat.format(a/b)); }}
2.1.2 编写services.xml文件
<!--Service Name--><service name="CalculateService"> <!--Service Description--> <description>Calculate Service</description> <!--Service Class Name--> <param name="ServiceClass">com.efo.service.CalculateService</param> <!--Service Message Receiver--> <messageReceivers> <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out" class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" /> <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only" class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver"/> </messageReceivers></service>
2.1.3 发布Web Service
在Windows cmd命令行,进入d:\WS目录,运行命令行,生成.aar包:
jar cvf calcservice.aar
然后复制calcservice.aar包到<Tomcat安装目录>\webapps\axis2\WEB-INF\services目录,完成Web Service发布。
- Web Service基础篇(一)之AXIS2
- Axis2 Web Service(一)
- Axis2 Web Service(一)
- axis2创建web service(一)
- axis2创建web service(一)
- axis2创建web service(一)
- 我的Web Service学习之路(一)---Axis2部署
- Web Service之AXIS2实践
- 通向架构师的道路(第十天)之Axis2 Web Service(一)
- 通向架构师的道路(第十天)之Axis2 Web Service(一)
- 通向架构师的道路(第十天)之Axis2 Web Service(一)
- 通向架构师的道路(第十天)之Axis2 Web Service(一)
- 通向架构师的道路(第十天)之Axis2 Web Service(一)
- 通向架构师的道路(第十天)之Axis2 Web Service(一)
- 通向架构师的道路(第十天)之Axis2 Web Service(一)
- 通向架构师的道路(第十天)之Axis2 Web Service(一)
- 通向架构师的道路(第十天)之Axis2 Web Service(一)
- 通向架构师的道路(第十天)之Axis2 Web Service(一)
- Invert Binary Tree(easy)
- 关于C 中快排函数QSORT的用法
- heheda练数据结构
- HDU4324-Triangle LOVE-判断是否存在环(拓扑)
- 多线程——原子、非原子,自旋锁和互斥锁
- Web Service基础篇(一)之AXIS2
- Java学习笔记--组合数学
- 使用TCP协议的NAT穿透技术 (转)
- Android自动获得短信验证码
- 斗地主检测牌型(玩家)
- HDOJ 2016 数据的交换输出
- 5.1.3 date对象
- ubuntu java 环境变量设置
- triangle