服务器端
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