如何指示Websphere MQ不显示JMS头?

如何指示Websphere MQ不显示JMS头?,jms,ibm-mq,Jms,Ibm Mq,我正在Linux上运行Weblogic 10.3,并且我已经设置了一个到WebPere MQ的网桥。我正在从Weblogic发送一个TextMesasge,它正在被传输到MQ。但是当我阅读MQ端的消息时 // Receiver reader - my class reader.qMgr = new MQQueueManager(qManager); int openOptions = MQOO_INPUT_AS_Q_DEF | MQOO_OUTPUT ; MQQueue localQueue

我正在Linux上运行Weblogic 10.3,并且我已经设置了一个到WebPere MQ的网桥。我正在从Weblogic发送一个TextMesasge,它正在被传输到MQ。但是当我阅读MQ端的消息时

// Receiver reader - my class
reader.qMgr = new MQQueueManager(qManager);
int openOptions = MQOO_INPUT_AS_Q_DEF | MQOO_OUTPUT ;

MQQueue localQueue = reader.qMgr.accessQueue(queueName, openOptions);
MQMessage msg = new MQMessage();
MQGetMessageOptions gmo = new MQGetMessageOptions(); 
localQueue.get(msg, gmo);

int n = msg.getDataLength();
System.out.println("The message is " + n + " bytes long");
String msgText = msg.readStringOfByteLength(n);
System.out.println("The message is: " + msgText);
我得到:

消息的长度为154字节 消息是:RFH��MQSTR� jms_文本Hqueue:///Q113575850399442 ABCDE

“ABCDE”是我的信息

我是否必须以某种方式指示Websphere MQ执行JMS->MQ转换,以便将消息读取为简单的“ABCDE”


谢谢

如果您在WebSphere MQ端使用受支持的JMS API,则无需执行任何转换即可获得消息的内容


您只需调用javax.jms.TextMessage.getText()方法,该方法将返回消息的内容(ABCDE)。

发送消息的程序应按说明设置
targetclient
parm

请记住,所有WMQV6.x都不受支持。如果您要使用一个受支持的版本(所有v7.x),您将能够设置队列的
PROPCTL
属性,以使QMgr剥离JMS头,而无需很少或根本不进行代码更改


如果您的公司有支持协议,您可以通过Passport Advantage获得新版本的WMQ。新客户端免费提供,因为您可以混合使用客户端和QMgr版本,并且新客户端有许多错误修复和新功能(其中许多功能甚至可以在连接到旧QMgr时使用)。较新的客户端和QMgr还将具有V6代码中不存在的安全修补程序。请尝试获取至少一个受支持的客户端版本,因为它是免费的,但最好是QMgr。

WMQ QMgr和WMQ client的哪个版本?如何让它做你想做的事情的细节因版本而异。我正在运行WMQ manager 6.0.2。我用这个版本附带的JAR编译我的客户端应用程序。接收应用程序超出我的控制范围,不使用JMS API,我正在尝试模拟它。在我的站点上,Weblogic通过网桥将一条消息发送到运行在我们这边的队列管理器,然后将其放到远程队列。因此,我在考虑是否可以以某种方式配置队列管理器,并告诉他将JMS转换为MQ。感谢you@Aleksandr那么Weblogic JMS和Websphere MQ之间的问题是什么呢?消息可以正常传递,但当我从MQ读取它时,我希望看到的只是“ABCDE”,没有JMS信封,设置targetClient工作正常。我们将尝试升级到WMQ7