Web Service是现在最适合实现SOA的技术,而Axis2是实现Web Service的一种技术框架(架构)。
注:SOA:Service-Oriented Architecture,面向服务结构体系
原来axis2是一个框架,而我当时创建web service时,用的是JAX-WS,根本没用axis2,所以我将它从tomcat的web目录下删除也不影响我接口的使用。
下面整理一下这次用axis2实现web service接口的方法及遇到的问题,这一节先只记录如何创建web service接口:
参考了:1、http://blog.sina.com.cn/s/blog_5cef6d430100jr3e.html
2、http://deltaj.javaeye.com/blog/284387
1、准备工作:
(1)IDE:eclipse
(2)web服务器:tomcat
(3)jdk (不要用太旧的版本,用1.6 ok)
2、下载axis2(web service 开发框架)(如:axis2-1.5-war.zip)
解压后,拷贝 axis2.war到tomcat安装目录的webapps目录下,重启tomcat,这样war包就会自动解压为目录axis2,在浏览器中输入:http://localhost:8080/axis2/ ,如果一切正常,会看到axis2的Welcom界面,截图如下:
3、在第2步成功后,继续下面的:
下载安装axis2的eclipse插件:axis2-eclipse-service-archiver-wizard.zip(帮助我们生成aar文件)和axis2-eclipse-codegen-wizard.zip(帮我们用wsdl文件生成stub代码的)。下载这两个插件解压到Eclipse安装目录下plugins中即可,【注:解压后,将解压的文件夹直接拷贝到eclipse的plugins中,不是只拷贝解压文件中的jar包。】 打开eclipse(如果eclipse已打开,需关闭,重新打开),选择File/New/Other菜单项,如果看到如下菜单,则表示插件安装成功,安装这两个插件的目的是:方便生成Axis2服务和生成Axis2客户端。
4、创建web service服务,分两步:
(1) 创建工程,这个跟创建基本的 java project没什么区别:创建java project、创建包、创建类、导入你要导入的jar包。
(2) 发布 web service
这个就是将(1) 中的工程发布到web服务器上,需要用axis2的帮忙,才能顺利发布成web service。例如(1) 中,创建了一个名为test的工程,工程下面有包 ws,ws下面有一个类Hello, 具体实现如下:
- package ws;
- public Class Hello{
- public String sayHello(String name){
- return "Hello,"+name;
- }
- }
发布 test 工程:
1) Eclipse 中 New --> File --> Other --> Axis2 wizards --> Axis2 Services Archiver
2)点击“next”进入类选择页,
在这个页面中的Class File Location选择框中选择类所在的文件夹,注意,不是 java 源文件,而是 classes 目录,即工程下的bin目录。这里需要注意由于你的类是带包ws的,因此不要选到包这个目录。
3)点击next之后进入了选择 wsdl文件,这里我们选择skip wsdl
4)点击next之后,进入的是选择jar文件的页面,如果你的工程中导入了外部jar包,如jdbc驱动等,需要在这里导入进来,否则axis2不会将这些jar包一起打包的。如果没有有外部的jar,所以点击next直接跳过这个页面。
5)点击next之后,进入的是选择xml页面,这里我们选择的是自动生成xml,也就是勾选Generate the service xml automatically这一项
6)点击next之后,在service name:Hello ,这个是你在axis2的listServices中可以看到的名字,即web service的名字,这里就叫Hello了
然后在class name:ws.Hello,这里需要注意加入完整的包名,写好后就可以点击load 按钮。如果一切ok的话,Class name下的行列中会显示你的类中方法名、返回值类型、参数个数的信息,一行显示一个方法的,可以通过勾选"Search declared methods only"来让只显示自定义的函数。
7)点击next 后,进入的是输出artiver文件的页面,先要在output File location 中选择要输出的路径,C:/Program Files/Apache Software Foundation/Tomcat 6.0/webapps/axis2/WEB-INF/services,也可以选择其他目录,然后copy到这一目录下。在output File Name中输入的内容就是axis2将要帮忙打包的包名,将打好的包,拷贝到 axis/WEB-INF/services/ 目录下,就算发布web service服务了。
8)点击finish,如果弹出成功提示,则说明服务发布成功了!
9)打开:http://localhost:8080/axis2/services/listServices 页面,可以看到Hello服务,点击进到Hello的wsdl页面:http://localhost:8080/axis2/services/Hello?wsdl ,表明服务部署正确。