摘要:在《XFire:开发Web服务的简易之道(二)》中最后提到过:要想检验Web服务是否有效,需要一个客户端程序实际调用一下这个Web服务。本章我们就来创建这样一个用于检验的客户端程序,验证一下我们前面的工作是不是真的有效。最后总结一下用XFire开发Web服务的步骤。 创建客户端程序 我们可以使用很多方法,任何SOAP工具来创建客户端程序,例如.Net或Apache Axis。我的这个例子中我是用一个名叫WsClient.java的Servlet中的动态代理。为了减少编码的代价,我将所有屏幕构建元素都放到doGet()方法中。对Web服务服务的实际调用在callWebService()方法中。代码很简单: /**//* Call the Web service
* */ public String callWebService( String fromAccount, String toAccount, double amount, String currency) throws MalformedURLException, Exception { //Create a metadata of the service Service serviceModel = new ObjectServiceFactory().create(IBankingService.class); log.debug("callSoapServiceLocal(): got service model." ); //Create a proxy for the deployed service XFire xfire = XFireFactory.newInstance().getXFire(); XFireProxyFactory factory = new XFireProxyFactory(xfire); String serviceUrl = "http://localhost:8080/websvc/services/Banking"; IBankingService client = null; try { client = (IBankingService) factory.create(serviceModel, serviceUrl); } catch (MalformedURLException e) { log.error("WsClient.callWebService(): EXCEPTION: " + e.toString()); } //Invoke the service String serviceResponse = ""; try { serviceResponse = client.transferFunds(fromAccount, toAccount, amount, currency); } catch (Exception e){ log.error("WsClient.callWebService(): EXCEPTION: " + e.toString()); serviceResponse = e.toString(); } log.debug("WsClient.callWebService(): status=" + serviceResponse); //Return the response return serviceResponse; } 这段代码做了些什么?让我解释一下:首先我们创建了一个服务模型,里面包含了对服务的描述,换句话说,我们创建了服务的元数据。我们是用XFire的ObjectServiceFactory通过接口IBankingService.class创建了这个服务模型。 下一步就是获取XFire的代理对象。这一步中没有任何应用细节。通过proxyFactory,使用服务模型和服务终点URL(用于获得WSDL),我们获得了服务的本地代理。 这个代理就是实际的客户端。现在我们可以调用transferFunds()方法获得我们想要的Web服务了。 一旦这个例子部署成功并启动,就可以用下面的Servlet URL检验: http://localhost:8080/websvc/ws Servlet使用默认的参数访问Web服务并显示接收到的响应。你应该能看到下面两行信息 Response Received COMPLETED: CDN$ 500.00 was successfully transferred from A/C# 11111-01234 to A/C# 99999-05678 现在你可以确信Web服务真的起来了并且工作正常。 你可以尝试传入不同的数据。你可以输入类似于下面的URL http://localhost:8080/websvc/ws?from=11-2345&to=77-9876&amt=250.00&cur=EUR. Web服务开发的基本步骤 下面列出了使用XFire开发Web服务的基本步骤: 1、检验Java类的方法和构造函数时公共的; 2、将XFire Servlet相关的入口添加到web.xml中; 3、创建services.xml并把它放到WEB-INF/classes/META-INF/xfire目录下; 4、将Xfire和其他第三方库添加到你的Web应用的WEB-INF/lib 目录下。 OK,这就是全部要做,就是这么简单。 |
|