gpt4 book ai didi

java.lang.ClassCastException : com. tibco.tibjms.TibjmsxSessionImp 无法转换为 javax.jms.QueueSession

转载 作者:行者123 更新时间:2023-12-01 11:08:31 33 4
gpt4 key购买 nike

当我尝试创建 JMS session 时,出现上述错误。请提出建议。使用的 JMS 服务器是 TIBCO。我在类路径中有 tibjms.jar 和 jms.1.1 jar。我能够创建连接。 spring-jms版本为4.1.4-Release版本。

String reply                = null;
QueueConnection connection = null;
QueueSession requestSession = null;
QueueSession replySession = null;
QueueReceiver receiver = null;
TemporaryQueue replyQueue = null;

try {
connection = (QueueConnection)jmsTemplate.createConnection();
connection.start();

requestSession = (QueueSession) jmsTemplate.createSession(connection);
replySession = (QueueSession) jmsTemplate.createSession(connection);
Queue queue = (Queue)jmsTemplate.getDestination(requestSession, jmsTemplate.getDefaultDestinationName());
replyQueue = replySession.createTemporaryQueue();
TextMessage requestMessage = requestSession.createTextMessage(message);

requestMessage.setJMSReplyTo(replyQueue);

LOGGER.debug("sending request/reply message "
+ jmsTemplate.getConnectionFactory()
+ requestMessage);

QueueSender queueSender = requestSession.createSender(queue);
queueSender.send(requestMessage);

receiver = replySession.createReceiver(replyQueue);
TextMessage replyMessage = (TextMessage)receiver.receive(jmsTemplate.getReceiveTimeout());

if(replyMessage != null){
reply = replyMessage.getText();
}
}catch(JMSException ex) {

最佳答案

是什么导致你创造出这种令人厌恶的东西?使用 JmsTemplateJmsMessagingTemplate相反。

用此替换您的代码

JmsMessagingTemplate jms = new JmsMessagingTemplate(jmsTemplate);
String reply = jms.convertSendAndReceive(message, String.class);

或者,如果您想使用普通的 JmsTemplate,请使用 sendAndReceive 方法,缺点是您需要自己处理消息创建和转换。

Message response = jmsTemplate.sendAndReceive(new MessageCreator() {
public Message createMessage(Session session) throws JMSException {
return session.createTextMessage(message);
}

});
String reply = ((TextMessage) replyMessage).getText();

无论哪种方式,一切都会为您处理。您正在使用 Spring,那么您也可以从中受益。

关于java.lang.ClassCastException : com. tibco.tibjms.TibjmsxSessionImp 无法转换为 javax.jms.QueueSession,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32651583/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com