在axis2下载zip包和war包,我下载的是http://mirrors.cnnic.cn/apache//axis/axis2/java/core/1.6.2/axis2-1.6.2-bin.zip和http://mirrors.cnnic.cn/apache//axis/axis2/java/core/1.6.2/axis2-1.6.2-war.zip
下载完后,解压axis2-1.6.2-war.zip,把里面的axis2.war放到tomcat的webapps目录,重启tomcat。
打开链接http://127.0.0.1:8080/axis2/,可以看到部署完成了。
点击“services",可以看到有哪些web service
点击“Administration”,可以进入管理页面,默认username是admin,password是axis2。
登录后,页面如下:
可以点击“Upload Service”,来上传web service的jar包。
现在来开发一个最简单的web service。
打开JavaEE版本的eclipse,新建一个java工程。
建立一个这样的目录:
package server;
public class HelloServer {
public String sayHi() {
return "Hi";
}
public String sayHello(String name) {
return "Hello, " + name;
}
}
<?xml version="1.0" encoding="UTF-8"?>
<service name="HelloServer">
<description>
Web Service Demo
</description>
<parameter name="ServiceClass">
server.HelloServer
</parameter>
<messageReceivers>
<messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out"
class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
<messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only"
class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" />
</messageReceivers>
</service>
然后把工程导出成jar包,如下图所示进行上传:
上传成功:
然后重启tomcat。
点击services,看到
多了HelloServer的服务,再点进去http://127.0.0.1:8080/axis2/services/HelloServer?wsdl
这样就生成了最简单的web service。
直接在浏览器里输入
http://127.0.0.1:8080/axis2/services/HelloServer/sayHi
会显示
- <ns:sayHiResponse xmlns:ns="http://server">
<ns:return>Hi</ns:return>
</ns:sayHiResponse>
如果输入
http://127.0.0.1:8080/axis2/services/HelloServer/sayHello?name=yang
会显示
- <ns:sayHelloResponse xmlns:ns="http://server">
<ns:return>Hello, yang</ns:return>
</ns:sayHelloResponse>
现在,开发客户端。
解压axis2-1.6.2-bin,进入bin目录,运行wsdl2java.bat,如图:
会在bin目录生成src目录,里面有java代码。
新建一个客户端的java工程,然后把axis2-1.6.2-bin\lib里的jar包,到复制到工程里面去,加到CLASSPATH。
把刚生成的bin/src里面的代码,复制到工程里面的src里去。
然后再写个客户端去调用wsdl生成的java代码。
package client;
import java.rmi.RemoteException;
import org.apache.axis2.AxisFault;
import server.HelloServerStub;
import server.HelloServerStub.SayHello;
import server.HelloServerStub.SayHelloResponse;
import server.HelloServerStub.SayHi;
import server.HelloServerStub.SayHiResponse;
public class Client {
/**
* @param args
*/
public static void main(String[] args) {
try {
HelloServerStub stub = new HelloServerStub();
SayHello sayHello = new SayHello();
sayHello.setName("yang");
SayHelloResponse sayHelloResp = stub.sayHello(sayHello);
System.out.println(sayHelloResp.get_return());
SayHi sayHi = new SayHi();
SayHiResponse sayHiResp = stub.sayHi(sayHi);
System.out.println(sayHiResp.get_return());
} catch (AxisFault e) {
e.printStackTrace();
} catch (RemoteException e) {
e.printStackTrace();
}
}
}
运行结果:
log4j:WARN No appenders could be found for logger (org.apache.axis2.description.AxisOperation).
log4j:WARN Please initialize the log4j system properly.
Hello, yang
Hi