axis2配置手册
- 格式:docx
- 大小:354.01 KB
- 文档页数:44
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?创建?web service?和客户端程序?????如何定制一个模块?(Module)?并在?web service?中使用它?????Samples discussion?????Advanced Topics第一部分:简介Axis2?是重新设计的一个架构,它没有基于?Axis1.*?的结构,这种新的架构?much more flexible, efficient and configurable?。
Axis2?的特性有:Speed:采用自己的对象模型,利用?StAX?解析Low memory foot print:Axis2?在设计过程中一直遵循?low memory cost?的理念AXIOM:采用自己的轻量级的对象模型,使得消息处理过程可扩展、性能高,对开发者来说更加简单。
Hot Deployment:Axis2?装备了在系统运行时部署服务和处理器的能力。
也就是说,新的服务新服务的添加不再需要重启服务器。
将服务的发布包放在服务部属文件夹中,部署模型将自动部署该服务。
Asynchronous Web Services:Axis2?现在可以通过?non-blocking clients and transports?支持异步的服务和异步的服务调用。
(?什么是异步的服务???)MEP Support:Axis2?具备良好的伸缩性来支持?MEPs?,因为它内置了对?WSDL2.0?中?MEPs?的支持。
Flexibility:Axis2?的架构使得程序员能自由的对?Axis?添加扩展,这些扩展包括对自定义?Header?的处理,系统管理,甚至是任何一件你可以想象的到的事情Stability:Axis2?定义了一套公共接口,这些接口相对于其他代码而言改动很小Component-oriented Deployment:你可以自定义一些在处理过程中常用的可重用的处理器,并可以将这些处理器发布出来供其它人使用Transport Framework:定义了一个干净、简单的抽象作品来集成任意的传输协议,引擎的核心部分的实现是与传输协议无关的Add-ons:一些?web service?相关的协议也合并了进来。
Axis2 + Tomcat5 + Java Eclipse + JDK 5 配置方法一、版本:主件:Axis:本例用Axis 2.1.5.4Tomcat:本例用Apache Tomcat 5.5.33Java Eclipse:Eclipse IDE for J2EEJDK:JDK 1.5(5.0)其它:Sysdeo Tomcat Plug-in:本例使用Tomcat Plug-in 3.3下载tomcatPluginV33.zipAxis2 Code Generator Wizard Plug-in 和Axis2 Service Archive Wizard Plug-in二、配置过程:1、下载Eclipse、Tomcat 5.5、Axis2 Binary 包后解压放到F:/Program Files 下2、下载JDK 后安装到F:/Program Files/Java 下3、将三个Plug-in 包解压放入%Eclipse%/dropins 下4、下载Axis2 WAR 包解压,其中Axis2.war 文件放入%Tomcat%/webapps 下,打开Eclipse,启动Tomcat,而后在%Tomcat% 目录下看到生成的axis2 文件夹,删除Axis2.war5、配置环境变量(系统属性--> 高级--> 环境变量):a) 键:AXIS2_HOME值:F:/Program Files/axis2-1-5-4b) 键:CLASS_PATH值(填写时不加回车):.;%JAVA_HOME%/lib;F:/Program Files/apache-tomcat-5.5.33/webapps/axis2/WEB-INF/lib;c) 键:JAVA_HOME值:F:/Program Files/Java/jdk1.5.0_22d) 键:Path值添:F:/Program Files/axis2-1-5-4/bin;F:/Program Files/Java/jdk1.5.0_22/bin;6、配置Eclipse:a) Window -> Preferences -> Tomcat,version 选5.x,Tomcat home 为F:/Program Files/apache-tomcat-5.5.33b) Window -> Preferences -> Tomcat -> JVM Settings 中,JRE 选jre1.5c) Window -> Preferences -> Java -> Build Path -> User Libraries 中,New 一项Axis2,后Add JARs,将F:/Program Files/axis2-1-5-4/lib 下所有项添加d) Window -> Preferences -> Java -> Installed JREs 中,选jre1.57、配置Tomcat 用户:F:/Program Files/apache-tomcat-5.5.33/conf/ tomcat-users.xml,要求在<tomcat-users> 键下有<role rolename="manager"/><role rolename="admin"/><user username="libo" password="hikaliv"roles="admin,manager"/>更改并保存三、调试:1、打开Eclipse,File -> New -> Other 中出现Axis2 Wizards2、启动Tomcat,浏览器中http://127.0.0.1:8080/,点击Tomcat Manager,可以libo / hikaliv 登录3、浏览器中http://127.0.0.1:8080/axis2/,点击Validate,没有红字报错;点击Services 可查看当前正在运行的服务4、通过cmd 下ipconfig 命令可查看当前主机ipv4 地址。
Axis2配置指南(翻译)关键字: Axis2In Axis2, there are three kinds of configuration files to configure the system. The first one is to configure the whole system (global configuration), the second one is to configure a service (service configuration), and the third one is to configure a module (module configuration). This document explains the above configurations in detail.在Aixs2中,有三个文件可以用来配置系统。
第一个配置整个系统(全局配置),第二个配置一个服务(服务配置),第三个配置一个模块(模块配置)。
本文档详细介绍上面的配置。
内容全局配置(axis2.xml)服务配置(services.xml)模块配置(module.xml)全局配置书写axis2.xml所有在启动axis2时需要的配置信息都从axis2.xml中取得。
指明它们的方法非常简单和容易。
此部分都是关于如何在axis2中以合适的方式指定配置信息的,在配置文件中可以看到六个顶级元素,如下:ParameterTransport ReceiverTransport SenderPhase OrderModule ReferencesListeners (Observers)Parameter:在Axis2中,parameter(参数)就是一个名-值对,axis2.xml中的每个顶级parameter元素将都被转换成AxisConfiguration中的属性,因此,配置文档中的顶级参数都可以在运行时环境中通过AxisConfiguration得到。
使用Apache Axis2创建Web Service1、环境搭建●下载并安装jdk1.6●下载并安装tomcat6.0●下载并安装eclipse-jee-indigo●下载并解压apache axis2-1.5.22、Eclipse环境配置●设置jdk : Preferences —> Java —> Installed JRES●设置tomcat : Preferences —> Server —> Runtime Enviroments●设置Axis2 Runtime: Preferences —> Web Services —> Axis2Preferences —> Axis2 Runtime 指定为apache axis2的根路径●Preferences —> Web Services —> Server and Runtime 设置Web services runtime为Apache Axis23、简单web service示例开发(server)●打开server视图,添加tomcat服务器●设置HTTP/1.1的端口为:8089●创建Dynamic Web Project,修改configuration,选中Axis2 Web Services即可。
●新建一个class Caculate,进行加法和减法运算。
●选中Caculate类右键新建一个web service,根据向导一步一步完成即可。
如下图所示:选中publish the web service和monitor the web service点击start server,启动tomcat服务器点击finish,整个web service创建及部署成功。
测试:http://localhost:8089/WS_02/services/Caculate?wsdl 打开web service explorer,选择WSDL page,输入WSDL URL,如下图所示:测试结果:4、总结:开发过程中容易出现的问题:Failed while installing Axis2 Web Services Core 1.1出现上述问题的原因:eclipse的Bug,更换eclipse版本即可解决问题。
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文件夹下有两个内容表示安装成功。
Axis2,CXF,xifire1. Axis2.x (3)1.1. 开发准备工作 (3)1.1.1. 环境 (3)1.1.2. 单独启动AXIS2服务 (4)1.1.3. 将axis2-1.6.2-bin.zip中的项目打成axis2.war包 (4)1.1.4. Axis2脚本 (5)1.1.5. 安装eclipse插件(可选) (7)1.1.6. axis2-bin文件目录结构 (8)1.1.7. 部署axis2.war到tomcat (8)1.1.8. 上传services(Uploading Services) (9)1.2. Axis2开发部署 (9)1.2.1. 编写服务器代码,和配置文件 (10)1.2.2. 发布 (11)1.2.3. 通过class文件生成wsdl文件(java2wsdl) (13)1.2.4. 通过wsdl文件生成Java访问代码(wsdl2java) (13)1.2.5. 调用:Axis2开发WebService客户端的3种方式 (14)1.2.6. PS:配置文件介绍 (21)1.3. 大病系统ESB接口开发 (25)1.3.1. esb接口标准 (26)1.3.2. esb接口开发 (31)1.3.3. esb接口调试测试 (53)1.3.4. esb接口发布 (53)2. CXF (53)2.1. 准备工作 (54)2.2. 开发示例 (54)2.2.1. 编写服务端接口 (55)2.2.2. 编写服务实现 (56)2.2.3. 编写webServiceApp.java类来暴露web服务 (57)2.2.4. 启动服务 (57)2.2.5. 编写客户端访问服务 (57)2.2.6. 测试 (58)2.2.7. 集成到spring (58)2.2.8. 通过wsdl文件生成客户端和服务器端代码 (61)3. xfire (62)3.1. 准备工作 (62)3.2. 开发步骤 (62)3.2.1. 建立目录结构 (62)3.2.2. 添加依赖包 (63)3.2.3. 编写服务端代码 (63)3.2.4. 配置web.xml (66)3.2.5. 创建xfire配置文件 (67)3.2.6. services.xml的作用 (68)3.2.7. 在服务器上运行服务 (69)4. Axis与XFire的比较 (72)4.1. XFire与Axis1性能的比较 (72)4.2. XFire与Axis2的比较 (72)5. cxf与axis2比较 (73)6. WSDL文件 (74)6.1. 抽象定义 (74)6.2. 具体定义 (74)7. JAXB (76)7.1. Java SE中的JAXB (76)7.2. 使用 (77)7.3. 缺省的数据类型绑定 (77)7.4. 代码示例 (78)1.Axis2.xWeb Service是现在最适合实现SOAP的技术,而Axis2是实现Web Service的一种技术框架(架构)。
一.在Eclipse中配置Axis2插件。
1.下载Axis2插件(Axis2官网:/axis2/java/core/download.html)2. 配置Eclipse Axis2插件把axis2-eclipse-codegen-plugin-1.7.1.zip和axis2-eclipse-service-plugin-1.7.1.zip文件里面的jar文件解压出来,放到eclipse目录下的dropins文件夹下,并新建一个txt文件,写入dropins目录的绝对路径,保存后更改文件格式为.link。
重启Eclipse,然后点击File-> New->Other->Axis2 Wizards即可看到axis2功能是否配置成功。
二.用Eclipse开发Axis2服务端1.解压axis2-1.7.1-bin.zip和axis2-1.7.1-war.zip文件,axis2-1.7.1-bin的解压文件夹随便放在一个目录下即可,axis2-1.7.1-war解压后的axis2.war文件放在tomcat目录的webapp文件夹下。
启动tomcat并输入http://localhost:8080/axis2即可看到如下画面。
2.新建Java Project,目录如下图所示(该示例主要展示了如何把配置文件也打包进aar文件),把axis2-1.7.1-bin的lib目录下的全部.jar文件(其实这些包是给客户端使用的,而且只需要其中一部分即可,为了方便才全部复制)全部复制到lib目录下,然后build path进项目中,建立如下文件:com.axis.server包下的文件AxisServer.java和User.java;resources 包下的文件application.properties。
3.生成aar文件:File->New->Other->Axis2 Wizards->Axis2 Service Archiver,并按下图流程进行即可生成aar文件。
用Axis2实现Web Service,虽然可以将POJO类放在axis2\WEB-INF\pojo目录中直接发布成Web Service,这样做不需要进行任何配置,但这些POJO类不能在任何包中。
这似乎有些不方便,为此,Axis2也允许将带包的POJO类发布成Web Service。
先实现一个POJO类,代码如下:package service;public class MyService{public String get Greeting(String name){return "您好 " + name;}public void update(String data){System.out.println("<" + data + ">已经更新");}}这个类有两个方法,这两个方法都需要发布成Web Service方法。
这种方式和直接放在pojo目录中的POJO类不同。
要想将MyService类发布成Web Service,需要一个services.xml文件,这个文件需要放在META-INF目录中,该文件的内容如下:<service nam e="myService"><description>Web Service例子</description><parameter name="ServiceClass">service.MyService</parameter><messageReceivers><m essageReceiver m ep="/2004/08/wsdl/in-out"class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/> <m essageReceiver m ep="/2004/08/wsdl/in-only"class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver"/> </messageReceivers></service>其中<service>元素用于发布Web Service,一个<service>元素只能发布一个WebService类,name属性表示WebService名,如下面的URL可以获得这个WebService 的WSDL内容:http://localhost:8080/axis2/services/m yService?wsdl其中name属性名就是上面URL中"?"和"/"之间的部分。
<description>元素表示当前Web Service的描述,<parameter>元素用于设置WebService的参数,在这里用于设置WebService对应的类名。
在这里最值得注意的是<messageReceivers>元素,该元素用于设置处理WebService方法的处理器。
例如,getGreeting方法有一个返回值,因此,需要使用可处理输入输出的RPCMessageReceiver 类,而update方法没有返回值,因此,需要使用只能处理输入的RPCInOnlyMessageReceiver 类。
使用这种方式发布WebService,必须打包成.aar文件,..aar文件实际上就是改变了扩展名的.jar文件。
在现在建立了两个文件:MyService.java和services.xml。
将MyService.java编译,生成MyService.class。
services.xml和MyService.class文件的位置如下:D:\ws\service\MyService.classD:\ws\META-INF\services.xml在windows控制台中进入ws目录,并输入如下的命令生成.aar文件(实际上,.jar文件也可以发布webservice,但axis2官方文档中建议使用.aar文件发布webservice):jar cvf ws.aar .最后将ws.aar文件复制到<Tom cat安装目录>\webapps\axis2\WEB-INF\services目录中,启动Tom cat后,就可以调用这个WebService了。
调用的方法和《WebService大讲堂之Axis2(1):用POJO实现0配置的WebService》所讲的方法类似。
另外services.xml文件中也可以直接指定WebService类的方法,如可以用下面的配置代码来发布WebService:<service nam e="myService"><description>Web Service例子</description><parameter name="ServiceClass">service.MyService</parameter><operation name="getGreeting"><m essageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageRecei ver"/></operation><operation name="update"><m essageReceiverclass="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver"/> </operation></service>上面的配置代码前面的部分和以前的services.xml文件的内容相同,但后面使用了<operation>元素来指定每一个WebService方法,并单独指定了处理每一个方法的处理器。
对于客户端来说,调用使用这两个services.xml文件发布的WebService并没有太大我区别,只是使用第二个services.xml文件发布WebServices后,在使用wsdl2java命令或使用C#、delphi等生成客户端的stub时,update方法的String类型被封装在了update类中,在传递update方法的参数时需要建立update类的对象实例。
而使用第一个services.xml文件发布的WebService在生成stub时直接可以为update方法传递String类型的参数。
从这一点可以看出,这两种方法生成的WSDL有一定的区别。
但实际上,如果客户端程序使用第一个services.xml文件发布的WebService生成stub类时(这时update方法的参数是String),在服务端又改为第二个services.xml文件来发布WebService,这时客户端并不需要再重新生成stub类,而可以直接调用update方法。
也就是说,服务端使用什么样的方式发布WebService,对客户端并没有影响。
如果想发布多个WebService,可以使用<serviceGroup>元素,如再建立一个MyService1类,代码如下:package servicepublic class MyService1{public String getName(){return "bill";}}在services.xml文件中可以使用如下的配置代码来配置MyService和MyService1类:<serviceGroup><service nam e="myService"><description>Web Service例子</description><parameter name="ServiceClass">service.MyService</param eter><messageReceivers><messageReceiver m ep="/2004/08/wsdl/in-out"class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/><messageReceiver m ep="/2004/08/wsdl/in-only"class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver"/> </messageReceivers></service><service nam e="myService1"><description>Web Service例子</description><parameter name="ServiceClass">service.MyService1</parameter><messageReceivers><m essageReceiver m ep="/2004/08/wsdl/in-out"class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/><m essageReceiver m ep="/2004/08/wsdl/in-only"class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver"/> </messageReceivers></service></serviceGroup>在《WebService大讲堂之Axis2(2):复合类型数据的传递》中讲过,如果要传递二进制文件(如图像、音频文件等),可以使用byte[]作为数据类型进行传递,然后客户端使用RPC方式进行调用。