Red Hat Training
A Red Hat training course is available for Red Hat Fuse
14.5.3. JMS 客户端配置
概述
JMS 使用者端点指定它们所使用的消息类型。JMS 使用者端点可以使用 JMS ByteMessage 或 JMS TextMessage。
使用 ByteMessage 时,使用者端点使用 字节[] 作为将数据存储到 JMS 消息正文中的数据的方法。发送消息时,消息数据(包括任何格式信息)被打包成 字节[],并在消息正文放置之前被放入一个线路中。收到消息后,消费者端点将尝试传播消息正文中存储的数据,就像以字节 [] 打包一样。
使用 TextMessage 时,使用者端点使用字符串作为消息正文中存储和检索数据的方法。发送消息时,消息信息(包括任何格式特定信息)将转换为字符串并放入 JMS 消息正文。当收到消息时,消费者端点将尝试推断 JMS 消息正文中存储的数据,就如同它被打包成一个字符串一样。
当原生 JMS 应用与 Apache CXF 用户交互时,JMS 应用负责解读消息和格式化信息。例如,如果 Apache CXF 合同指定用于 JMS 端点的绑定是 SOAP,并且消息被打包为 TextMessage,则接收的 JMS 应用程序将收到包含所有 SOAP envelope 信息的文本消息。
指定消息类型
JMS consumer 端点接受的消息类型使用可选的 jms:client 元素进行配置。jms:client 元素是 WSDL 端口 元素的子项,它有一个属性:
示例
例 14.7 “用于 JMS 消费者端点的 WSDL” 显示用于配置 JMS 使用者端点的 WSDL。
例 14.7. 用于 JMS 消费者端点的 WSDL
<service name="JMSService">
<port binding="tns:Greeter_SOAPBinding" name="SoapPort">
<jms:address jndiConnectionFactoryName="ConnectionFactory"
jndiDestinationName="dynamicQueues/test.Celtix.jmstransport" >
<jms:JMSNamingProperty name="java.naming.factory.initial"
value="org.activemq.jndi.ActiveMQInitialContextFactory" />
<jms:JMSNamingProperty name="java.naming.provider.url"
value="tcp://localhost:61616" />
</jms:address>
<jms:client messageType="binary" />
</port>
</service>