图 5. 将接口与生成的服务组件相关联

WebSphere ESB入门:创建POJO并发布(二)_Java

 


 
  现在接口已与组件关联。我们可以通过使用“Generate Implementation”选项生成实现的框架。

 

  图 6. 为新服务组件生成实现

 

WebSphere ESB入门:创建POJO并发布(二)_Java_02

 


 
  图 7. 将实现添加到生成的框架中

 

WebSphere ESB入门:创建POJO并发布(二)_ESB_03

 


 
  我们需要在上述类中添加 convert 方法的实现,如下所示:

 

  清单 1. Convert 方法实现
    
public Double convert(Double celsius) {
 double dCelsius = celsius.doubleValue();
 double fahr;
 fahr = (((0.9/0.5) * dCelsius) + 32);
 return new Double(fahr);
}  

 

  将服务组件与独立引用关联

 

  接下来,我们将创建独立引用,并将其与服务组件相关联,以便 JSP 客户机能够通过独立引用访问该组件。

 

  图 8. 创建独立引用

 

WebSphere ESB入门:创建POJO并发布(二)_WSDL_04

 


 
  我们可以通过“Add Reference”按钮将 TemperatureConverterInterface.wsdl 与独立引用相关联。缺省情况下,独立引用将被命名为 TemperatureConverterInterfacePartner。

 

  图 9. 将独立引用与服务组件连接

 

WebSphere ESB入门:创建POJO并发布(二)_ESB_05

 


 
  创建客户机,并通过独立引用访问服务

 

  接下来,我们需要开发客户机 JSP 来测试服务组件。此 JSP 将允许用户输入摄氏度值。随后 JSP 会将该值传递给服务,以将其转换为华氏度,并最后显示结果。

 

  图 10. 新 JSP 文件模板

 

WebSphere ESB入门:创建POJO并发布(二)_WSDL_06

 


 
  将随后使用下面所示的 ServiceManager 类通过 JSP 调用组件。

 

  清单 2. JSP 实现
    
String cel = request.getParameter("celcius");
if(cel != null && cel.length() > 0){
try{
  ServiceManager serviceManager = new ServiceManager();
  Service service = (Service) serviceManager.locateService
  ("TemperatureConverterInterfacePartner");
  Double celDouble = Double.valueOf(cel);
  DataObject respObject = (DataObject) service.invoke("convert", celDouble);
  if(respObject!= null){
   out.println(respObject.getDouble("Fahrenheit"));
  }
    }catch(Exception e){
    //handele it   
  }
}

 

  打包并在 WebSphere ESB 中部署应用程序

 

  组件和客户机现在已经准备好,可以打包并在 WebSphere ESB 中部署,以便进行测试。将应用程序导出为 Integration Module EAR,如下所示。

 

  图 11. 将项目作为集成模块导出

 

WebSphere ESB入门:创建POJO并发布(二)_WSDL_07

 


 
  图 12. 集成模块导出

 

WebSphere ESB入门:创建POJO并发布(二)_WSDL_08

 


 
  在 WebSphere ESB 中通过 Admin Console 部署 EAR 文件,并在浏览器中访问其“URL”。

 

  图 13. 最终输出

 

WebSphere ESB入门:创建POJO并发布(二)_WSDL_09

 


 
  结束语

 

  通过本文,您已经了解了如何使用自底向上方法(从接口到实现)创建服务组件以及如何在 IBM WebSphere ESB 中发布它。另外,还了解了如何通过独立引用从客户机访问此服务组件。