配置 SOAP over JMS 消息类型

可以配置“SOAP over Java™ 消息服务 (JMS)”请求或响应消息以使用 BytesMessage 或 TextMessage 对象。

开始之前

必须作为企业 Bean 实现 Web Service,以便可通过 JMS 传输进行访问。

关于此任务

对于使用新兴业界标准 SOAP over JMS 协议的 Web Service,可以配置 SOAP over JMS 请求和响应以指定是在 JMS BytesMessage (javax.jms.BytesMessage) 还是 TextMessage (javax.jms.TextMessage) 对象中传输消息。缺省消息类型是 BytesMessage。

如果 JMS 消息是 BytesMessage,那么 JMS 消息的主体是二进制数据。

如果 JMS 消息是 TextMessage,那么 JMS 消息的主体是字符串数据。例如,如果要实现的审计或记录功能需要人类可读的 JMS 消息,请考虑配置文本消息。

使用 SOAP over JMS 作为 Web Service 请求和响应消息的传输时,在确定是使用 BytesMessage 还是 TextMessage 对象时,必须考虑以下性能方面的注意事项:
  • 内存使用情况 -

    TextMessage 中的有效内容基于字符串,由于单个字符基于 UTF-16 字符编码,所以 TextMessage 中的有效内容占据的字节可能是相同 BytesMessage 所占据字节的两倍。对于具有较小有效内容的请求和响应消息,TextMessages 和 BytesMessages 之间内存使用的此差异可能不重要,但是对于较大的有效内容,可能必须为业务环境考虑这种内存使用方面的差异。

  • 二进制附件 -

    使用 JMS TextMessage 来传输请求和响应消息时,随 SOAP 消息主体一起包含的任何二进制附件都必须是 base64 编码,因为此底层消息有效内容基于字符串。当二进制附件使用 base64 进行编码时,将需要更多的处理时间和内存来变换该数据。因此,base64 编码的二进制附件可能比原始未编码的附件版本大出最多三分之一。在这种情况下,如果接着在基于字符串的消息有效内容中传输此较大编码的附件部分,那么传输二进制附件部分所需的内存使用可能是 BytesMessage 中原始未编码的二进制附件所需的内存大小的几乎三倍。

过程

结果

使用 SOAP over JMS 协议传输请求和响应消息时,已配置 Web Service 客户机使用 TextMessage 或 BytesMessage 对象。


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



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