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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |