编写在附件编码样式之间进行映射的调解

使用本主题来创建从“带有附件的 SOAP 消息”编码样式映射至 WS-I Attachments Profile V1.0 编码样式的调解。

开始之前

有关将调解与服务集成总线配合使用的简介,请参阅了解调解。有关如何将调解安装到 WebSphere Application Server 中并使它与总线目标相关联的详细信息,请参阅使用调解

本主题假定您熟悉如何使用 Java Platform Enterprise Edition (Java EE) 会话 Bean 开发环境,如 组装工具IBM® Rational® Application Developer

本主题中提供的示例调解基于支持绑定附件:WSDL 示例中提供的 WSDL 示例。

关于此任务

可以使用一个调解来实现从消息的“带有附件的 SOAP 消息”编码映射至 WS-I Attachments Profile V1.0 编码。在这两种编码中 WSDL 定义是相同的,因此,如果您创建一个调解,它将重写“内容标识”值以便符合 V1.0 约定,那么服务集成技术将根据 V1.0 的规则来编码消息。

要创建映射调解,请使用 Java Platform Enterprise Edition (Java EE) 会话 Bean 开发环境以完成以下步骤:

过程

  1. 创建空的调解处理程序项目。 这将创建该项目并创建实现处理程序接口的处理程序类。有关如何执行此操作的详细指示信息,请参阅编写调解处理程序
  2. 使用 EJB 描述符上的调解窗格来将该处理程序类定义为调解处理程序。
    注: 执行此操作时,请指定用来标识该调解处理程序列表的名称。请记录此名称以便以后在总线中创建调解时作为参考。
  3. 将映射函数添加至处理程序中。 在开始之前,请参阅将调解函数添加到处理程序代码中。以下是调解处理程序代码的一个示例,它将重写“内容标识”值以便符合 V1.0 约定:
    int uuidBase = 0;
    DataObject root = SIMessage.getDataGraph().getRootObject();
    List attachments = root.getList("info/attachments");
    Iterator entries = attachments.iterator();
    while(entries.hasNext()) {
      DataObject entry = (DataObject) entries.next();
      if(entry.getType().equals("BoundMIMEAttachmentEntryType")) {
        String newContentId = entry.getString("messagePart") + "=" +
                              Integer.toString(uuidBase++) +
                              "@some.domain";
      }
    }
    注: 对于使用“带有附件引用的 SOAP”(swaref) 或者其他某些 URI 机制来引用附件的消息,可能还需要更新 URI 值以便与新的“内容标识”值相匹配。但是,某些机制通常用来引用非绑定附件。
    有关服务集成技术类(包括调解处理程序类)的更多信息,请参阅生成的 API 文档 - 应用程序编程接口
  4. 导出映射调解企业应用程序。

下一步做什么

现在,您可以将调解安装到 WebSphere Application Server 中并使它与总线目标相关联,如使用调解中所述。

指示主题类型的图标 任务主题



时间戳记图标 最近一次更新时间: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tjw_mediation_attach
文件名:tjw_mediation_attach.html