本文目的在于使用axis快速构建可用于实际项目开发的系统结构,对于SOAP协议理论方面不做赘述。
本文中使用Jetty作为服务器,Jetty是一个免费的开放源码的100%纯Java的Http服务器和Servlet容器, 它具有轻量级、高性能和高可靠性、嵌入式、可扩展等优点。
IDE使用eclipse。
服务端构建
服务端项目Axisserver,中,lib下为服务端用到的jar文件,包括jetty相关jar文件和axis相关jar文件,将这些jar文件全部引入到项目中。server-config.wsdd为soap服务端配置文件,包含soap服务访问入口,相关参数,以及自定义的类等信息。AxisServer.java用来启动jetty服务器并注册axis服务。AxisServerInterface.java是用来为客户端提供服务的接口,客户端通过其可以访问所有开放的web services服务。Player.java是自己定义的对象,需要通过axis将此对象在服务端和客户端之间传递。MyException是自定义的异常,用来封装本项目内部的错误。
AxisServer.java
public class AxisServer {
public void start() {
Server server = new Server();
SocketListener listener = new SocketListener();
listener.setPort(8080);
ServletHttpContext context = (ServletHttpContext) server
.getContext("/");
context.setResourceBase("./web/");
try {
context.addServlet("AxisDefault", "/webservices/*",
"org.apache.axis.transport.http.AxisServlet");
server.addContext(context);
server.addListener(listener);
server.start();
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
new AxisServer().start();
}
}
AxisServer.java是项目是启动程序,负责启动jetty服务器,注册web services服务。
AxisServerInterface.java
public class AxisServerInterface {
public String ping() thr