新手初来咋到,因为工作原因需要使用到WebService,网上找资料的时候看到很多Axis2开发的webservice都是打包成arr格式附带到Axis2框架上发布,这样不能打包成war发布。
整理了一些资料了解了一种可以把Axis2开发的WebService打包成war包发布。
一、环境准备
使用Axis来开发Web services 需要准备 web 服务器,Axis API。本文使用的Web container 是Tomcat6.0, Axis API 采用版本2。
1.1软件下载准备
Tomcat下载地址:
http://tomcat.apache.org/download-55.cgi#5.5.20
Axis标准包:
http://apache.etoak.com/ws/axis2/1_5_1/axis2-1.5.1-bin.zip
Axis War包:
http://apache.etoak.com/ws/axis2/1_5_1/axis2-1.5.1-war.zip
1.2步骤
A.将axis2.war包拷贝到tomcat安装目录下的webapps目录中。
B.启动Tomcat(windows 下为TOMCA_HOME/bin中的startup.bat;Linux,unix环境为startup.sh文件),打开浏览器输入并访问:http://ip:port/axis2来查看。(如果没有进行配置文件的修改此地址应该为http://localhost:8080/axis2),如果能看到下面的页面则说明已经安装完成。
二、例子
先从一个简单的例子开始。以便对使用Axis来开发Web services的大致流程有个了解。
2.1编写自己的应用服务端。
A.启动MyEclipse,新建立一个WebApps(File->New->Project->Web Project),给Project Name 为Axis2Service,其他保持不改变。
B.我们需要一个简单的web service,建包cc.com.mm,包下新建类TestWebService。代码如下:
package cc.com.mm;
public class TestWebService {
public String test(String name){
return name +" "+ "test";
}
}
C.将Axis2集成到我们自己的webapp中。首先我们需要将Axis2 Servlet写到我们的web.xml中。如下:
<?xml version="1.0" encoding="UTF-8"?> <web-app id="wmf" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <servlet> <servlet-name>AxisServlet</servlet-name> <servlet-class>org.apache.axis2.transport.http.AxisServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>AxisServlet</servlet-name> <url-pattern>/services/*</url-pattern> </servlet-mapping> </web-app>
D.把tomcat安装目录下的webapps/axis2/axis2-web放到项目的WebRoot下,把tomcat安装目录下的webapps/axis2/WEB-INF下的service和conf和moduls文件夹拷至项目下的WEB-INF目录下,并修改conf目录下的axis2.xml,找到<module ref="addressing"/>并将其注释掉。把lib下的jar包也拷到项目的lib下去。结构如下:
E.接下来,我们需要为TestWebService写一个部署描述。在services下新建Axis2Service(这个可以任取)/META-INF路径,META-INF下新建services.xml,内容如下:
<service name="ServiceTest"> <description> Test Service Example </description> <parameter name="ServiceClass"> cc.com.mm.TestWebService </parameter> <operation name="test"> <messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" /> </operation> </service>
F.把项目加载到tomcat,也可以打包成war发布到tomcat,启动tomcat后访问http://localhost:8080/Axis2Service/services/ServiceTest?wsdl
能看到服务信息,则说明已经成功。