java、axis2、wsdl

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




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值