Axis2教程
- 格式:pdf
- 大小:1.11 MB
- 文档页数:45
A XIS2之WEBSERVICE新手超详细教程---------------尚明Axis2是一套崭新的WebService引擎,该版本是对Axis1.x重新设计的产物。
Axis2不仅支持SOAP1.1和SOAP1.2,还集成了非常流行的REST WebService,同时还支持Spring、JSON 等技术,本教程是主要阐述如何构建一个基本的Axis2 webservice应用,里面的许多环节高手可直接略过,本教程完全针对新手。
一、环境安装安装myeclipse下载地址::///file/4238159/48030981-6b56-40a4-a93b-8f424ee4f33a安装mysql下载地址::///file/4238159/de64cf2f-4217-4e11-bb98-8e6c5dd24155安装mysql-workbench(mysql可视化工具)下载地址::///file/4238159/becf913f-56a6-4d68-b248-134113b73535安装tomcat下载地址::///file/4238159/ec6a2250-99ff-464e-a978-be184c96e4e7下载Axis2服务包下载地址::///file/4238159/bb3db6e3-2f7d-4343-b472-c1fa714dba95下载Axis2开发插件包下载地址::///file/4238159/aa39505f-079b-43be-9479-15a2d3e98cbb安装jdk下载地址::///file/4238159/7ba342f9-277f-4b9c-b5e7-b0c5b7dfc151二、环境配置1)Java环境配置a)设置JAVA_HOME图1.图2设置JAVA_HOME=D:\Program Files\Java\jdk1.6.0_10* D:\Program Files\Java\jdk1.6.0_10为笔者本机的JDK安装目录,请开发者根据实际安装路径来填写,注意环境变量最后面不能加分号,D:\Program Files\Java\jdk1.6.0_10;这么写是错误的。
Axis2(9):编写Axis2模块(Module)Axis2可以通过模块(Module)进行扩展。
Axis2模块至少需要有两个类,这两个类分别实现了Module和Handler接口。
开发和使用一个Axis2模块的步骤如下:1. 编写实现Module接口的类。
Axis2模块在进行初始化、销毁等动作时会调用该类中相应的方法)。
2. 编写实现Handler接口的类。
该类是Axis2模块的业务处理类。
3. 编写module.xml文件。
该文件放在META-INF目录中,用于配置Axis2模块。
4. 在axis2.xml文件中配置Axis2模块。
5. 在services.xml文件中配置Axis2模块。
每一个Axis2模块都需要使用<module>元素引用才能使用。
6. 发布Axis2模块。
需要使用jar命令将Axis2模块压缩成.mar包(文件扩展名必须是.mar),然后将.mar文件放在<Tomcat安装目录>\webapps\axis2\WEB-INF\modules目录中。
先来编写一个WebService类,代码如下:1package service;23public class MyService4{5public String getGreeting(String name)6{7return "您好" + name;8}9}下面我们来编写一个记录请求和响应SOAP消息的Axis2模块。
当客户端调用WebService 方法时,该Axis2模块会将请求和响应SOAP消息输出到Tomcat控制台上。
第1步:编写LoggingModule类LoggingModule类实现了Module接口,代码如下:10package module;1112import org.apache.axis2.AxisFault;13import org.apache.axis2.context.ConfigurationContext;14import org.apache.axis2.description.AxisDescription;15import org.apache.axis2.description.AxisModule;16import org.apache.axis2.modules.Module;17import org.apache.neethi.Assertion;18import org.apache.neethi.Policy;1920public class LoggingModule implements Module21{22// initialize the module23public void init(ConfigurationContext configContext, AxisModule module) 24throws AxisFault25{26System.out.println("init");27}28public void engageNotify(AxisDescription axisDescription) throws AxisFault 29{30}31// shutdown the module32public void shutdown(ConfigurationContext configurationContext)33throws AxisFault34{35System.out.println("shutdown");36}37public String[] getPolicyNamespaces()38{39return null;40}41public void applyPolicy(Policy policy, AxisDescription axisDescription)42throws AxisFault43{44}45public boolean canSupportAssertion(Assertion assertion)46{47return true;48}49}在本例中LoggingModule类并没实现实际的功能,但该类必须存在。
MyEclipse8.0 + AXIS2一.环境准备二.Axis2安装部署在tomcat中三.自己写一个简单的webservice并在axis2下部署。
一、环境准备(MyEclipse8.0 + AXIS2)1.1软件下载准备tomcat:apache-tomcat-6.0.18Axis2 War包:axis2.war 2-1.5.1版Axis Eclipse plug-in(代码生成工具和打包工具):Axis2_Codegen_Wizard_1.3.0Axis2_Service_Archiver_1.3.0(1.4版本解压缩还是1.3,只不过是修正后的1.3版,但还是缺少2个jar包)注意点:(官网下的最新1.3版本有问题,用代码生成工具最后会报错:ng.reflect.InvocationTargetException从CSDN上下载2个工具的1。
4版本,在axis2-1.4.1-war\axis2\WEB-INF\lib目录下,复制backport-util-concurrent-3.1.jargeronimo-stax-api_1.0_spec-1.0.1.jar这两个文件至MyEclipse 8.x Latest \dropins \Axis2_Codegen_Wizard_1.3.0\ lib下,同时要编辑MyEclipse 8.x Latest\dropins\Axis2_Codegen_Wizard_1.3.0下的plugin.xml,将这两个文件添加进去(复制粘贴两项,修改jar文件名为新拷入的文件名即可),再使用codegen插件即可正常生成代码。
二.Axis2安装部署在tomcat中无论使用哪个版本的Axis2,要把它安装在一个J2EE兼容的Servlet容器中请参照一下说明:1用Axis2标准二进制发行包建立Axis2 W AR文件。
2将W AR文件放到servlet容器的webapps目录下。
教程:如何用Axis2开发和部署Web服务引言Axis2 是下一代Apache Axis。
Axis2 虽然由Axis 处理程序模型提供支持,但它具有更强的灵活性并可扩展到新的体系结构。
Axis2 基于新的体系结构进行了全新编写,而且没有采用Axis 的常用代码。
支持开发Axis2 的动力是探寻模块化更强、灵活性更高和更有效的体系结构,这种体系结构可以很容易地插入到其他相关Web 服务标准和协议(如WS-Security、WS-ReliableMessaging 等)的实现中。
Axis2 的特性包括:•采用名为AXIOM(AXI s O bject M odel,Axis 对象模型)的新核心XML 处理模型•支持In-Only 和In-Out 消息交换模式(MEP)•阻塞和非阻塞客户端API(应用程序编程接口)•支持内置的Web 服务寻址(WS-Addressing)•支持XMLBeans 数据绑定•新部署模型•支持超文本传输协议(HTTP)、简单邮件传输协议(SMTP) 和传输控制协议(TCP) 等传输协议本系列文章以Axis2 版本为基础。
您可以在网站获得Axis2 的最新版本。
Axis 体系结构概述图 1. Axis2 体系结构Axis2 体系结构将逻辑与状态分离;这允许在并行线程中执行逻辑。
服务和调用的静态状态和动态状态分别存储在Description和Context类中。
Axis2 体系结构是使用7 个独立模块实现的。
1.信息模型:此模块管理SOAP 引擎的状态。
该模型定义一组用于存放状态的类,而引擎管理这些信息对象的生命周期。
信息模型包含两种用于存放状态的类。
Description类存放本质上是静态的且存在于Axis 引擎实例的整个生命周期中的数据(如传输、服务和操作的配置)。
Context类存放调用上下文中有效的服务和操作的动态信息,例如当前请求和响应SOAP 消息、From 地址、To 地址和其他元素。
一、准备工作1.下载axis2相关jar包目前最新版本为 1.6.2;将axis2-1.6.2-bin.rar,axis2-1.6.2-war.zip一并下载下来,下载地址:/axis2/java/core/download.cgi2.下载axis2插件:axis2-eclipse-codegen-plugin-1.6.2.zip、axis2-eclipse-serv ice-plugin-1.6.2.zip,下载地址:/axis2/jav a/core/tools/index.html3安装Eclipse插件,安装成功如下图:5.新建Web Project(axis2_Serv ice)将axis2-1.6.2-bin\lib下的jar拷贝到axis2_Serv ice\lib下,打开axis2-1.6.2-war.zip\axis2\WEB-INF下的conf、modules、services 解压到项目(axis2_Serv ice)WebRoot\WEB-INF下6.修改web.xml文件,添加如下代码:7.添加两个类:bean类和服务类Bean类:package .zjl.entity;import java.io.Serializable;public class User implements Serializable{/****/private static final long serialVersionUID = 1L;private int id;private String name;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) { = name;}}要发布的服务类:package .zjl.service;import er;public class UserService {public User getUser(User user) {System.out.println("service:"+user.getId());System.out.println("service:"+user.getName());User po2 = new User();po2.setId(1);po2.setName("zjl");return po2;}}8.Axis2插件工具生成aar文件,发布WebService在项目上右击->new->other选择Axis2 Serv ice Archiv er,点击nextClass File Location选择工程路径下的classes文件,点击Next勾选Skip WSDL项,点击next这里没有jar文件,所以默认,点击Next勾选Generate the serv ice xml automatically项,点击NextServ ice Name 随便写记住就行,Class name包名点类名称点击Load会出现这个类下的所有方法名称,点击NextOutput location选择输出文件位置(具体位置根据具体而定),点击Finsh说明成功。
1.软件准备:一下软件版本为本人使用版本Myeclipse 9.0Tomcat 6.0Jdk 6以下两项为myeclipse插件axis2-eclipse-codegen-plugin-1.6.0.zipaxis2-eclipse-service-plugin-1.6.0.zip以下zip包为tomcat插件axis2-1.6.0-war.zipaxis2中的jar,在客户端开发中需要用到这些jar包axis2-1.6.0-bin.zip2. myeclipse插件安装将axis2-eclipse-codegen-plugin-1.6.0.zip和axis2-eclipse-service-plugin-1.6.0.zip解压D:\Users\Administrator\AppData\Local\MyEclipse为我的myeclipse安装的根目录将解压后的plugins中的jar包复制到myeclipse的安装目录下的common中的plugins中(只需jar包即可)如:D:\Users\Administrator\AppData\Local\MyEclipse\Common\plugins进入到myeclipse安装目录中的org.eclipse.equinox.simpleconfigurator中,如下:D:\Users\Administrator\AppData\Local\MyEclipse\MyEclipse9\configuration\org.eclipse.equinox.simpleconfigurator用记事本打开org.eclipse.equinox.simpleconfigurator 中的文件项文件中添加下面内容org.apache.axis2.eclipse.codegen.plugin,1.6.0,file:/d:/Users/Administrator/AppData/Local/MyEcli pse/Common/plugins/org.apache.axis2.eclipse.codegen.plugin_1.6.0.jar,4,falseorg.apache.axis2.eclipse.service.plugin,1.6.0,file:/d:/Users/Administrator/AppData/Local/MyEclip se/Common/plugins/org.apache.axis2.eclipse.service.plugin_1.6.0.jar,4,false启动myeclipse后点击新建 other后如果能看到Axis2 Wizards文件夹下有两个内容表示安装成功。
Axix2 webservice 开发教程例子简单易懂,很适合初学者。
开发环境:jdk1.6 tomcate5.0 Myeclipse5.0步骤:1.下载axis2所用包axis2-1.4.1-bin.zip 和axis2-1.4.1-war.zip并解压下载地址:/axis2/2.解压axis2-1.4.1-war.zip 将axis2.war 放到%TOME_HOME%\webapps中.启动Tomcate. IE地址输入:http://localhost:<port>/axis2/ .出现以上表示环境搭建成功。
3.下面开始开发自己的axis2 ws:创建web项目:我的项目工程名为axis2demo;将axis2-1.4.1\lib下所有jar导入。
创建一个HelloWorld.java在META-INF下建一个service.xml文件。
<?xml version="1.0" encoding="UTF-8"?><service><parameter name="ServiceClass" locked="false">com.xwx.demo.HelloWorld<poeration name="sayHello"><messageReceiverclass="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/> </poeration></parameter></service>注:关于service.xml的参数配置自己baidu+google4.就开始准备一下axis2的eclispe的插件了。
axis2的eclispe插件分为2个,一个是帮助我们生成aar文件的,另一个是帮我们用wsdl文件生成stub代码的。