您的位置:首页 > 其它

使用axis2实现web service接口(一)

2011-03-10 17:29 225 查看
距离上次创建web service接口已经一年了,尽管当时有记录(http://www.51testing.com/?uid-252512-action-viewspace-itemid-211044),但由于开发IDE由Myeclipse变成了eclipse,去年记录的创建步骤用不了。于是继续百度,寻找用eclipse创建web service接口的方法。搜索了一下,终于找到了一个web service的开发框架axis2,其实这个框架在去年这时候也下载过,那时不知它是一个框架,找到了一个说法,就试试,后来发现不将axis2放在tomcat的web目录下也可以运行自己写的web service接口。觉得奇怪,但没弄明白是什么回事,以为axis2是一个web service的example,今天我才知道,我太小看axis2了。看一下百度百科上对axis2是怎么定义的:

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 ,表明服务部署正确。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: