WEB开发网
开发学院操作系统Linux/Unix 在WebSphere和DB2中使用标准数据格式 阅读

在WebSphere和DB2中使用标准数据格式

 2010-09-27 08:16:33 来源:WEB开发网   
核心提示: XSLTranformation1 的目标是将 MedicationSPL 接口(中介模块向其客户端公开的接口)转换为中介接口(即内部 Web 服务的接口),在转换中使用了一个常规 XSLT 样式表,在WebSphere和DB2中使用标准数据格式(7),在请求路径中,使用 MedicationS

XSLTranformation1 的目标是将 MedicationSPL 接口(中介模块向其客户端公开的接口)转换为中介接口(即内部 Web 服务的接口)。在转换中使用了一个常规 XSLT 样式表。在请求路径中,使用 MedicationSPL 中提供的名称调用内部服务来获得 UUID。返回的值为 UUID。然后将 UUID(为进行演示已对其进行硬编码)插入到要在响应路径中使用的服务消息对象,以便调用 HL7 SPL 数据服务。

图 5. 中介流组件的响应路径

在WebSphere和DB2中使用标准数据格式

中介流组件的响应路径如图 5 所示。此流程的目标是使用从内部服务返回的数据形成 XQuery 并调用 HL7 服务(使用自定义代码中介元素执行此操作)。此自定义中介元素的目的是获取内部 Web 服务(存储于 SMO 中)返回的值,使用该值构建 XQuery,并将其传递到 HL7 Web 服务。清单 3 描述了自定义中介元素的实现。

清单 3. 自定义中介实现

public DataObject mediate(DataObject input1) {
  System.out.println("In Response Mediation");
  System.out.println("invoke service and extract response payload");
  ServiceManager serviceManager = ServiceManager.INSTANCE;
  BOFactory bofactory = (BOFactory) serviceManager
      .locateService("com/ibm/websphere/bo/BOFactory");
  System.out.println("Before Locating Service After Getting Object");
  //(1) Building XPath while extracting the payload from the
  // incoming SMO input1.getString("body/GetStringResponse/GetStringReturn")
  String query = "XQUERY declare default element namespace "urn:hl7-org:v3";for
    $doc in db2-fn:xmlcolumn('DB2INST1.HL7.DOCUMENT')/PORP_IN000001
    where $doc/receiver/device/id/@root=""
      + input1.getString("body/GetStringResponse/GetStringReturn")
      + "" return $doc";
    
    
  //(2) Creating Elements for HL7 Service and setting it's payload to the Built Xquery
  DataObject runXquery = bofactory.createByElement(
      "http://schemas.ibm.com/hl7/hl7/hl7.dadx", "runxquery");
  runXquery.setString("query", query);
  System.out.println("After Setting Object");
  System.out.println("invoke HL7 service ");
  //(3) invoking the webservice by locating the service providing the operation name 
  // and passing in the newly created DataObject as the input Parameters
    
  Service myService = (Service) ServiceManager.INSTANCE
  .locateService("theSoapPortTypePartner");
  DataObject Hl7Response = (DataObject) myService.invoke("runxquery",
      runXquery);
    
  System.out.println("Getting returned from HL7");
  DataObject Hl7ResponseOutPut = Hl7Response.getDataObject("queryresult");
    
  // (4)Adjusting Return Values for Polocies External
  DataObject message = bofactory.createByMessage(
      "http://MedicationSPLModule/MedicationSPL",
      "getSPLInfoResponseMsg");
  DataObject myRes = bofactory.createByElement(
      "http://MedicationSPLModule/MedicationSPL",
      "getSPLInfoResponse");
  myRes.setDataObject("SPLDocument", hl7ResponseOutPut);
  System.out.println("2");
  System.out.println(message);
  message.setDataObject("getSPLInfoResult", myRes);
  input1.setDataObject("body", message);
  System.out.println("leaving Response");
  return input1;
}

编缉推荐阅读以下文章

  • 使用 WebSphere Process Server 修复流程
  • 设置并置 WebSphere Application Server 负载均衡器和内容主机
  • 利用 WebSphere Application Server 6.1 构建 SIP 集群应用环境及其性能调优
  • WebSphere Process Server V6.0.2 集群,第 1 部分:了解拓扑
  • 如何实现WebSphere Application Server 6集群环境下的定时服务
  • 迁移集群环境中的 WebSphere Commerce
  • WebSphere Process Server V6.0.2 集群,第 2 部分:安装和配置 WebSphere Process Server 集群
  • Websphere MQ v6集群的负载均衡新功能
  • 将 JUnit 插件集成到 WebSphere Studio 中
  • 使用 IBM WebSphere MQ JMS 提供程序

上一页  2 3 4 5 6 7 8  下一页

Tags:WebSphere DB 使用

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接