




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Axis2和Tomcat6.0开发Web Service环境配置JDK1.6官方下载地址目前JDK最新版本是JDK1.6,到下载Tomcattomcat 6.X官方下载地址:/download-60.cgitomcat 5.5官方下载地址:/download-55.cgi下载Axis2axis2官方下载地址:/axis2/download/1_4/download.cgi设置JDK1.6环境变量JDK的安装非常简单,只需要按照向导一步一步进行即可。在安装时需记住安装
2、的路径,在配置环境变量时将会用到这个安装路径。我的安装路径是F:jdk1.6.对于初学者来说,环境变量的配置是比较容易出错的,在配置的过程中应当仔细。使用JDK一共需要配置三个环境变量:java_home、classpath和path(不区分大小写)。1、java_home右键点击“我的电脑”,选择“属性”,点击“高级”选项卡,选择“环境变量”。进入如下对话框:在系统变量栏,点击“新建”按钮,弹出如下对话框:在变量名处填写java_home,变量值填写F:jdk1.6,然后点击确定,这样java_home变量就配置完成了。2、classpath可以参考java_home的配置过程,需要新建一个
3、系统变量,不过classpath的变量名是classpath,变量值是.;%JAVA_HOME%lib;%JAVA_HOME%libtools.jar(要加.表示当前路径).3、PathPath变量在系统变量中已经存在,要修改path变量只需要选中path变量,点击编辑即可。在变量值中加入如下内容:%JAVA_HOME%bin;%JAVA_HOME%jrebin。建议把JDK bin的路径放在原有path的最前面。因为在%SystemRoot%system32中还有一个java.exe/javaw.exe,这是Windows操作系统自带的那个JRE,如果我们自己装的话就不要用系统默认的那个JR
4、E了,应该用我们自己装的。所以我们把JDK bin的path放在最前面以便优先使用。4、检查JDK环境变量是否配置正确进入命令行窗口,方法是点击开始-运行-输入CMD后回车,你将看到如下界面:然后输入javac或者java version后敲回车,如果出现以下的响应则表示JDK配置成功。配置Axis2方法1:如果你下载的是Axis2 :Standard Binary Distribution,你还需要下载建立工具ANT,地址是:/bindownload.cgi然后设置ANT的环境变量:在系统变量中新建:ANT_HOME,变量值为:ant的根目录。如:C:
5、antPath,加入:%ANT_HOME%bin然后你进入C:axis2webapp的Axis2的如上的目录中,在命令行中运行命令:ant。在C:axis2dist目录中,你可以看到axis2.war文件。方法2:(强烈推荐大家使用以下方法来配置Axis2)直接下载Axis2的WAR版本 /axis2/download/1_4/download.cgi直接放在Tomcat6.0安装目录的webapps文件夹下,然后启动tomcat,Axis2自动完成部署。如下图所示:(1) 将axis2.war放入webapps文件夹中(2) 运行Tomcat6.0,点击
6、Start即可(3) 在上一步中成功启动Tomcat之后,axis2会自动完成部署,并在webapps文件夹下生成axis2子文件夹(4)打开浏览器,在地址栏输入http:/localhost:8080/axis2出现Axis2欢迎界面,点击service可以看到目前所有的服务。到此为止,配置工作就全部完成了。一个简单的webservice实例在介绍实例之前,我们要先完成一些准备工作,首先打开Eclipse开发工具,点击菜单栏的Window然后选中Preferences,在弹出的对话框中依次点开Java、Build Path、选中User Libraries,然后点右边的New按钮,在弹出的对
7、话框中输入axis2,选中System library(added to the boot class path),然后点OK,接着选中刚创建好的user library(即axis2),点右边的Add JARs按钮,(还记得之前我们配置axis2时通过axis2.war直接部署并生成了一个axis2的文件夹吗?这里我们要用到它)将axis2文件夹内WEB-INF下的lib文件中的所有文件包含进去。整个过程如下图所示:(1) 打开Eclipse(2) 添加axis2用户库(3)添加webappsaxis2WEB-INFlib下的所有文件到axis2用户库这个axis2用户库有什么用呢?其实我们
8、可以注意到,axis2用户库里包含的实质上是封装了axis2的各种功能和类的函数库,我们在编写服务端和客户端代码的时候直接在工程里引用axis2用户库,这样就可以使用axis2提供的各种功能函数以及类、类型等等。如果不样的话,编译器将无法识别诸如OMElement、OMFactory这样的类名。当然,你也可以将webappsaxis2WEB-INFlib的所有文件拷贝到你建立的工程的lib文件里,但是当你有多个工程的时候,你将拷贝多份文件至工程中,耗时耗力,是不明智的。接下来介绍两种方式来发布服务。方式一:用POJO实现0配置的WebService对于用Java实现的服务程序给人的印象就是需要
9、进行大量的配置,不过这一点在Axis2中将被终结。在Axis2中不需要进行任何的配置,就可以直接将一个简单的POJO发布成WebService。其中POJO中所有的public方法将被发布成WebService方法。下面我们来实现一个简单的POJO,代码如下:public class SimpleService public String getGreeting(String name)
10、60; return "你好 " + name; public int getPrice() return new java.util.Random().nextInt(1000);
11、 在SimpleService类中有两个方法,由于这两个方法都是public方法,因此,它们都将作为WebService方法被发布。 编译SimpleService类后,将SimpleService.class文件放到<Tomcat安装目录>webappsaxis2WEB-INFpojo目录中(如果没有pojo目录,则建立该目录)。现在我们已经成功将SimpleService类发布成了WebService。在浏览器地址栏中输入如下的URL:http:/localhost:8080
12、/axis2/services/listServices 这时当前页面将显示所有在Axis2中发布的WebService,如下图所示。通过上图可以看出,刚刚发布的SimpleService有两个方法,分别是getPrice和getGreeting,服务的EPR地址为:http:/localhost:8080/axis2/services/SimpleService,如果想查阅该服务的wsdl文档,可以通过直接点击标题SimpleService或者在浏览器地址框内输入http:/localhost:8080/axis2/services/SimpleService?wsdl,你将看到如
13、下图所示的信息:在编写、发布和测试0配置的WebService时应注意如下几点: 1. POJO类不能使用package关键字声明包。 2. Axis2在默认情况下可以热发布WebService,也就是说,将WebService的.class文件复制到pojo目录中时,Tomcat不需要重新启动就可以自动发布WebService。如果想取消Axis2的热发布功能,可以打开<Tomcat安装目录>webappsaxis2WEB-INFconfaxis2.xml,找到如下的配
14、置代码:<parameter name="hotdeployment">true</parameter> 将true改为false即可。要注意的是,Axis2在默认情况下虽然是热发布,但并不是热更新,也就是说,一旦成功发布了WebService,再想更新该WebService,就必须重启Tomcat。这对于开发人员调试WebService非常不方便,因此,在开发WebService时,可以将Axis2设为热更新。在axis2.xml文件中找到<parameter name="ho
15、tupdate">false</parameter>,将false改为true即可。 3. 发布WebService的pojo目录只是默认的,如果读者想在其他的目录发布WebService,可以打开axis2.xml文件,并在<axisconfig>元素中添加如下的子元素: <deployer extension=".class" directory="my" class=&qu
16、ot;org.apache.axis2.deployment.POJODeployer"/> 上面的配置允许在<Tomcat安装目录>webappsaxis2WEB-INFmy目录中发布WebService。例如,将本例中的SimpleService.class复制到my目录中也可以成功发布(但要删除pojo目录中的SimpleService.class,否则WebService会重名)。方式二:使用service.xml文件发布WebService用Axis2实现Web Service,虽然可以将POJO类放在axis
17、2WEB-INFpojo目录中直接发布成Web Service,这样做不需要进行任何配置,但这些POJO类不能在任何包中。这似乎有些不方便,为此,Axis2也允许将带包的POJO类发布成Web Service。 先实现一个POJO类,代码如下:package service;public class MyService public String getGreeting(String name)
18、 return "您好 " + name; public void update(String data) System.out.println("<" +
19、 data + ">已经更新"); 这个类有两个方法,这两个方法都需要发布成Web Service方法。这种方式和直接放在pojo目录中的POJO类不同。要想将MyService类发布成Web Service,需要一个services.xml文件,这个文件需要放在META-INF目录中,该文件的内容如下:<service name="myService"> <description>
20、 Web Service例子 </description> <parameter name="ServiceClass"> service.MyService </parameter>&
21、#160; <messageReceivers> <messageReceiver mep="/2004/08/wsdl/in-out" class="org.apache.axis2.rpc.receivers.RPCMessageRec
22、eiver" /> <messageReceiver mep="/2004/08/wsdl/in-only" class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" /
23、> </messageReceivers></service>其中<service>元素用于发布Web Service,一个<service>元素只能发布一个WebService类,name属性表示WebService名,如下面的URL可以获得这个WebService的WSDL内容:http:/localhost:8080/axis2/services/myService?wsdl 其中name属性名就是上面URL中"?"和"/"之间的部分。&l
24、t;description>元素表示当前Web Service的描述,<parameter>元素用于设置WebService的参数,在这里用于设置WebService对应的类名。在这里最值得注意的是<messageReceivers>元素,该元素用于设置处理WebService方法的处理器。例如,getGreeting方法有一个返回值,因此,需要使用可处理输入输出的RPCMessageReceiver类,而update方法没有返回值,因此,需要使用只能处理输入的RPCInOnlyMessageReceiver类。使用这种方式发布WebService,必须打包成.a
25、ar文件,.aar文件实际上就是改变了扩展名的.jar文件。在现在建立了两个文件:MyService.java和services.xml。将MyService.java编译,生成MyService.class。services.xml和MyService.class文件的位置如下:D:wsserviceMyService.classD:wsMETA-INFservices.xml 在windows控制台中进入ws目录,并输入如下的命令生成.aar文件(实际上,.jar文件也可以发布webservice,但axis2官方文档中建议使用.aar文件发布
26、webservice):jar cvf ws.aar . jar cvf AxisTest.aar . 最后将ws.aar文件复制到<Tomcat安装目录>webappsaxis2WEB-INFservices目录中,启动Tomcat后,就可以调用这个WebService了。最后,我们用java写一个客户端来调用我们刚才发布的SimpleService服务。首先,在Eclipse中创建一个新的Java Project,取名为test,建好后右键点击test工程,选择Properties,在弹出的对话框中选择Java Build Pat
27、h,接着点Libraries选项卡,然后点击Add Library.按钮,在弹出的对话框中选中User Library并点Next,在新的对话框中将axis2前面的勾打上,点确定即完成了对axis2用户库的引用。接着在test工程的src文件夹下新建包client,在client下新建java文件,取名为RPPClient.java,然后添加如下代码:package client;import space.QName;import org.apache.axis2.addressing.EndpointReference;import org.apache.axis2.client.Options;import org.apache.axis2.rpc.client.RPCServiceClient;public class RPCClient public static void main(String args) throws Exception / 使用RPC方式调用WebService RPCServiceClient serviceClient
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 育婴师质量提升考题及答案
- 心理咨询师考试内容的伦理问题探讨与实践试题及答案
- 新兴产业对专利保护的影响试题及答案
- 激光技术在可持续发展中的作用考题试题及答案
- 机械考初级证试题及答案
- 教师职业道德考点与试题及答案
- 激光技术应用规范试题及答案
- 激光技术工程师证书考试复习材料与试题答案
- 育婴师与父母沟通技巧试题及答案
- 数值修约试题及答案
- 成都地铁站项目地质详细勘察报告中铁
- 2023年公积金单身承诺书(通用4篇)
- 大学生劳动教育实践教程(本科)PPT全套完整教学课件
- 啤酒废水(UASB+AO)毕业设计说明书
- 2022-2023学年辽宁省大连重点达标名校中考一模生物试题含解析
- GB/T 23821-2022机械安全防止上下肢触及危险区的安全距离
- MT/T 199-1996煤矿用液压钻车通用技术条件
- GB/T 4814-2013原木材积表
- 气温的分布和温度带
- 第6-2章生料粉磨和熟料粉磨
- GA 634-2006消防员隔热防护服
评论
0/150
提交评论