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。

java、axis2、wsdl_axis2



登录后,页面如下:

java、axis2、wsdl_java_02



可以点击“Upload Service”,来上传web service的jar包。


现在来开发一个最简单的web service。


打开JavaEE版本的eclipse,新建一个java工程。

建立一个这样的目录:

java、axis2、wsdl_xml_03


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包,如下图所示进行上传:

java、axis2、wsdl_xml_04




上传成功:

java、axis2、wsdl_webservice_05



然后重启tomcat。


点击services,看到

java、axis2、wsdl_java_06



多了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,如图:


java、axis2、wsdl_webservice_07


会在bin目录生成src目录,里面有java代码。


新建一个客户端的java工程,然后把axis2-1.6.2-bin\lib里的jar包,到复制到工程里面去,加到CLASSPATH。


把刚生成的bin/src里面的代码,复制到工程里面的src里去。


然后再写个客户端去调用wsdl生成的java代码。

java、axis2、wsdl_apache_08



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