webservice 远程方法调用核心步骤

服务器端

1.新建web工程

2.导入xfire的jar包:工程----->右键------>myEclipse----->add xFire----->next------>加入核心包core

3.在WebServices--->services.xml中配置

 

< service > 
    < name > leiweiService </ name > 
    < namespace > www.yinhe.edu.com/leiweiService </ namespace > 
    < serviceClass > com.china.bank.TurnMoneyBank </ serviceClass > 
    < implementationClass > com.china.bank.ChinaBank </ implementationClass > 
</ service > 


4.编写接口和实现类

5.测试服务器是否部署成功:工程名+servlet的url地址

   http://192.168.1.45:8080/webserviceServer/services/*?wsdl

 

客户端1:提供jar包

1.新建web工程

2.导入xfire的jar包:工程----->右键------>myEclipse----->add xFire----->next------>加入核心包core和http client包

3.得到服务器端提供的接口jar包并导入工程

4.新建servlet

5.在servlet中书写核心代码

 

		Service servicemodel = new ObjectServiceFactory().create(TurnMoneyBank.class);// 通过客户端的接口来得到一个服务
		XFire factory = XFireFactory.newInstance().getXFire();// 通过工厂得到XFire对象
		XFireProxyFactory proxy = new XFireProxyFactory(factory);// 通过xfire对象实例化代理工厂
		String serverurl = "http://172.18.27.146:8080/webserviceServer/services/leiweiService";//访问服务器上的方法地址
		TurnMoneyBank turnMoneyBank = null;
		turnMoneyBank = (TurnMoneyBank) proxy.create(servicemodel, serverurl);//请求到对应地址的服务器
		String msg = turnMoneyBank.turnMoney(myCount, targetCount, money);//调用服务器端接口中的方法


 

6.部署发布:工程名+servlet的url地址

 

客户端2:只提供地址

import java.net.MalformedURLException;
import java.net.URL;

import org.codehaus.xfire.client.Client;


public class url {

	/**
	 * xfire-all-1.2.4.jar, jdom-1.0.jar
	 * @param args
	 */
	public static void main(String[] args) {
		try {
			Client c = new Client(new URL("http://172.18.27.146:8080/wservice/services/helloservice?wsdl"));
			
			//调用Client对象的invoke方法,指定web服务的方法名,和参数,返回值是一个Object型的数组。
			//下面代码调用getName方法,这个方法没有参数用所以后一个参数使用new Object[0]。
			Object[] results = c.invoke("getName", new Object[0]); 
			
			//调用Client对象的invoke方法,指定web服务的方法名,和参数,返回值是一个Object型的数组。
			//下面代码调用getAge方法,这个方法有参数用所以后一个参数使用new Object[]{params}。
			String param = "leiwei";
			int param2 = 300;
			Object[] results2 = c.invoke("getAge", new Object[]{param,param2}); 
			
			System.out.println(results[0].toString() + "---" + results2[0].toString());
			
		} catch (MalformedURLException e) {
			e.printStackTrace();
		} catch (Exception e) {
			e.printStackTrace();
		}

	}

}

 

客户端3:提供地址,自动生成客户端

1.新建web/java工程

2.导入xfire的jar包:工程----->右键------>myEclipse----->add xFire----->next------>加入核心包core和http client包

3.

 

4.

 

5.

 

6.

 

7.修改helloserviceClient中main方法。即在其中调用想要的接口方法

 

 

http://www.cnblogs.com/sun_moon_earth/archive/2009/02/03/1383308.html

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值