Axis2是目前比较流行的WebService 引擎。WebService 被应用在很多不同的场景。例如,可以使用
WebService 来发布服务端 Java 类的方法,以便使用不同的客户端进行调用。这样可以有效地集成多种
不同的技术来完成应用系统。
Axis2是一套崭新的WebService引擎,该版本是对Axis1.x 重新设计的产物。Axis2不仅支持 SOAP1.1和 SOAP1.2,
还集成了非常流行的 REST WebService,同时还支持 Spring、JSON 等技术。
一、axis2的下载(基于axis2-1.6)
二、在eclipse中配置axis2开发环境
(1)、新建一个Dynamic Web Project
(2)、解压axis2-1.6压缩包,将如下jar包添加到lib文件夹下:
activation-1.1.jar
axiom-api-1.2.13.jar
axiom-impl-1.2.13.jar
axis2-adb-1.6.2.jar
axis2-adb-codegen-1.6.2.jar
axis2-codegen-1.6.2.jar
axis2-java2wsdl-1.6.2.jar
axis2-jaxws-1.6.2.jar
axis2-kernel-1.6.2.jar
axis2-soapmonitor-servlet-1.6.2.jar
axis2-transport-http-1.6.2.jar
axis2-transport-local-1.6.2.jar
commons-codec-1.3.jar
commons-fileupload-1.2.jar
commons-httpclient-3.1.jar
commons-io-1.4.jar
commons-logging-1.1.1.jar
httpcore-4.0.jar
mail-1.4.jar
neethi-3.0.2.jar
woden-api-1.0M9.jar
woden-impl-dom-1.0M9.jar
wsdl4j-1.6.2.jar
wstx-asl-3.2.9.jar
xmlbeans-2.3.0.jar
XmlSchema-1.4.7.jar
(3)、在WebContent(或者WebRoot)新建文件夹axis2-web,然后在该文件夹下创建listServices.jsp文件,文件内容如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@
page contentType="text/html;charset=UTF-8" language="java"%><%@
page
import="org.apache.axis2.Constants,org.apache.axis2.description.AxisOperation,org.apache.axis2.description.AxisService,java.util.Collection,java.util.HashMap,java.util.Iterator"%><html>
<head>
<title>List Services</title>
<style>
h2 {
margin: 20 0 5 0;
}
ul {
margin-top: 5;
}
</style>
</head>
<body>
<h1>Available services</h1>
<%
HashMap serviceMap = (HashMap) request.getSession().getAttribute(
Constants.SERVICE_MAP);
Collection servicecol = serviceMap.values();
if (servicecol.size() == 0) {
%>Available services is Empty.<%
}
for (Iterator iterator = servicecol.iterator(); iterator.hasNext();) {
AxisService axisService = (AxisService) iterator.next();
Iterator opItr = axisService.getOperations();
String serviceName = axisService.getName();
%>
<h2>
<font color="blue"><a href="<%=serviceName%>?wsdl"
target="_blank"><%=serviceName%></a> </font>
</h2>
<i>Available Operations</i>
<ul>
<%
while (opItr.hasNext()) {
AxisOperation axisOperation = (AxisOperation) opItr.next();
%><li><%=axisOperation.getName().getLocalPart()%></li>
<%
}
%>
</ul>
<%
}
%>
</body>
</html>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@
page contentType="text/html;charset=UTF-8" language="java"%><%@
page
import="org.apache.axis2.Constants,org.apache.axis2.description.AxisOperation,org.apache.axis2.description.AxisService,java.util.Collection,java.util.HashMap,java.util.Iterator"%><html>
<head>
<title>List Services</title>
<style>
h2 {
margin: 20 0 5 0;
}
ul {
margin-top: 5;
}
</style>
</head>
<body>
<h1>Available services</h1>
<%
HashMap serviceMap = (HashMap) request.getSession().getAttribute(
Constants.SERVICE_MAP);
Collection servicecol = serviceMap.values();
if (servicecol.size() == 0) {
%>Available services is Empty.<%
}
for (Iterator iterator = servicecol.iterator(); iterator.hasNext();) {
AxisService axisService = (AxisService) iterator.next();
Iterator opItr = axisService.getOperations();
String serviceName = axisService.getName();
%>
<h2>
<font color="blue"><a href="<%=serviceName%>?wsdl"
target="_blank"><%=serviceName%></a> </font>
</h2>
<i>Available Operations</i>
<ul>
<%
while (opItr.hasNext()) {
AxisOperation axisOperation = (AxisOperation) opItr.next();
%><li><%=axisOperation.getName().getLocalPart()%></li>
<%
}
%>
</ul>
<%
}
%>
</body>
</html>
(4)、在WEB-INF目录下创建services文件夹,将压缩包Axis2-1.6.2\repository\services中的两个文件(services.list、version.aar),复制到该文件夹下。
(5)、配置web.xml文件,文件内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
<welcome-file>/axis2-web/index.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>AxisServlet</servlet-name>
<servlet-class>org.apache.axis2.transport.http.AxisServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>AxisServlet</servlet-name>
<url-pattern>/servlet/AxisServlet</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>AxisServlet</servlet-name>
<url-pattern>*.jws</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>AxisServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
</web-app>
(6)、eclipse配置tomcat服务器,并配置tomcat项目发布路径
Window->Show View->Server,在Server视图中,点击鼠标右键->new->server,选择tomcat服务器,在Server runtime environment,点击add,选择本地安装的tomcat,点击finish。
双击tomcat服务器(注意:该操作必须在服务器中没有部署任何项目的情况下),在Server Locations栏目中,xuanze第二列,并将Deploy path修改为webapps,如下图:
(7)、部署项目,并启动服务器,访问:
http://localhost:8080/springAxis2project/services/listServices
如果浏览器显示如下,则表示环境搭建成功: