在开发JAX-RPC Web Services for WebSphere(上)一文中,小编为大家介绍了如何创建一个Web服务项目、如何创建一个服务类和Web服务,以及部署项目等内容。接下来小编将为大家介绍另外两节内容,希望能够帮助到大家。
(1)通过点击相应图标加载Web服务浏览器。
(2)在Web服务资源管理器工具栏上单击相应图标,然后点击单击WSDL Main链接来打开Open WSDL页面。
(3)在WSDL URL字段中输入http://localhost:9080/WebServiceProject/services/Calculator?WSDL,然后点击Go。
URL被分解成以下组件:
Web服务资源管理器加载从这个Web服务中分解的所有操作。
(4)为了测试Web服务,请在导航器中单击Add操作来使用浏览器测试它。调用WSDL操作页面出现在资源管理器中。该页面显示您正在测试的端点(运算器),同时每个参数操作需要一个字段输入测试值。
(5)在a和b字段中输入值10和20,然后单击Go。
在这种情况下,从Web服务的状态会显示30的响应。
Web服务客户端允许您直接与Web服务及其分解操作进行交互,而无需编写所有的编组或连接代码。
在MyEclipse中,当您生成一个Web服务时,您将在同一时间得到生成Web服务客户端的选项。您可以在任何时间使用此功能,但是在本教程中,我们认为更典型的情况时需要对一个已部署的Web服务创建一个Web服务客户端,而不是为正在生成的服务。
在本节中,您在一个单独的Java项目中生成一个Web服务客户端,因为Web服务已经部署并挂钩到它上面了。在本教程中,这使得Web服务和Web服务客户端创建之间的界限非常清楚地分开。
(1)单击下拉箭头,选择Java项目。
(2)在项目名称字段中输入WebServiceClientProject,然后单击完成。
(3)单击下拉箭头,然后选择New Web Service Client。
(4)从项目的下拉菜单中选择您的Web服务客户端,选择AX-RPC框架选项,并选择WebSphere服务器作为目标服务器。这提供了MyEclipse调用来创建JAX-RPC客户端的Web服务代服务。然后单击下一步。
(5)请务必选择WSDL URL选项,并输入http://localhost:9080/WebServiceProject/services/Calculator?WSDL在WSDL URL字段中。
您可以使用命名空间来打包映射列表定制基于源WSDL文件中定义的命名空间中产生的包。如果不指定映射,生成工具会选择一个合适的默认映射。
(6)单击下一步。MyEclipse加载Web服务验证的WSDL,让您知道WSDL可能存在的问题。
注意:如果使用验证发生任何错误,请确保Web服务部署和应用服务器托管正在运行。如果您想生成客户端的第三方Web服务,并且在验证过程中出错,将其带到了Web服务的作者请注意,如果可能的话,这样就能够纠正错误。
(7)单击完成所有MyEclipse生成的客户端都为您服务。
已经生成客户端后,一个新的包出现在您的src目录中,同时还有一些新的类可以同Web服务一起工作。
随着新资源的生成,您可以使用运算器的ServiceLocator类访问引用到Web服务,然后执行您的公开操作(加,减,乘,除)。
举个例子说,您要计算以下4个运算:
在这个示例中,添加从Web服务中使用操作来确保这些计算的代码。首先,您需要在他的主函数中创建一个新的类。
(1)右键单击com.myeclipseide.ws包,并选择New> Class。
(2)将它命名为WebServiceClient,选择Public static void main复选框,然后单击完成。
当您创建类之后,您需要将提供上述四个数学计算的主要实现方法同Web服务一起执行这些计算,然后输出到控制台结果的代码如下:
package com.myeclipseide.ws; import java.rmi.RemoteException; import javax.xml.rpc.ServiceException; public class WebServiceClient { public static void main(String[] args) throws ServiceException, RemoteException { /* Create a locator instance */ CalculatorServiceLocator locator = new CalculatorServiceLocator(); /* Get access to the service using the locator */ Calculator_SEI calculator = locator.getCalculator(); /* Using the web service, perform the 4 calculations */ System.out.println("1. 3+7=" + calculator.add(3, 7)); System.out.println("2. 12-2=" + calculator.subtract(12, 2)); System.out.println("3. 9*9=" + calculator.multiply(9, 9)); System.out.println("4. 40/2=" + calculator.divide(40, 2)); } }
注意:之所以定义的主要函数抛出ServiceException和RemoteException是为了避免在主要函数中实现try-catch块。在写一个真正的客户端时,捕捉和处理异常的情况也是编写好的代码的重要组成部分。
(3)在上面显示代码的Java类文件中替换默认代码,然后点击保存。
(4)通过右键单击来运行类,选择Run As(或Debug As)>Java Application。
该客户端运行代码后,使用它生成的定位器类访问Web服务,然后再控制台中会出现下面的输出: