1.编写目的
本文档用以生成最简单的基于Axis2的webservice服务端以及客户端。并做相应的测试
2.服务端创建
首先需要在Apache官网下载Axis2.war包,放置在tomcat/webapps目录下,启动tomcat,会将其解压。
2.1、新建一个Dynamic Web Project,命名为Server.在src/cn/com/ebidding/service目录下写个最简单的服务端代码。
package cn.com.ebidding.service;
/**
* @author
*/
public class HelloWorld {
public String sayHello(String name) {
String str = "Hello " + name;
return str;
}
}
2.2、在tomcat/axis2目录下的lib中拷贝以下jar包至Server的lib包中。
2.3、在Server/WEB-INF下新建servers.xml文件,配置如下。
<?xml version="1.0" encoding="UTF-8"?>
<serviceGroup>
<service name="HelloWorldService">
<description>HelloWorld-Service</description>
<parameter name="ServiceClass">cn.com.service.HelloWorld</parameter>
<messageReceivers>
<messageReceiver mep="http://www.w3.org/ns/wsdl/in-only"
class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" />
<messageReceiver mep="http://www.w3.org/ns/wsdl/in-out"
class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
</messageReceivers>
</service>
</serviceGroup>
2.4、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" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>WebServiceServer</display-name>
<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>
2.5、将其部署在tomcat中,在浏览器中访问http://localhost:24000/WebServiceServer/services/HelloWorldService?wsdl如下,即为配置成功。
有时火狐浏览器访问会有问题,建议使用Edge访问。
3.客户端创建
3.1、创建Dynamic Web Service命名为Client.配置需要选择tomcat6.0和Dynamic web module version 2.5。
3.2、Client创建完成后,再该项目上右键创建WebService Client .注意版本选择。
Service definition中写:http://localhost:24000/WebServiceServer/services/HelloWorldService?wsdl。
创建完成之后,目录结构如下
需要向lib加xmlscheme-core.2.2.1.jar.此处的几个错误可以忽略。
4.客户端测试
其中测试代码ClientStub为:
public class ClientStub {
public static void testHello(String name) throws RemoteException {
HelloWorldServiceStub stub = new HelloWorldServiceStub();
SayHello sh = new SayHello();
sh.setName(name);
SayHelloResponse response = stub.sayHello(sh);
System.out.println(response.get_return());
}
public static void main(String[] args) throws RemoteException {
testHello("niki");
}
}
控制台显示如下,即为测试成功。