客户端调用服务器上的JMS报错
1、com.ibm.ws.naming.util.Helpers
WARNING: jndiGetObjInstNoop
Exception in thread "P=451515:O=0:CT" java.lang.ClassCastException: javax.naming.Reference incompatible with javax.jms.QueueConnectionFactory
at com.ztesoft.oss.js.flowbus.client.Test.sendJms(Test.java:146)
at com.ztesoft.oss.js.flowbus.client.Test.main(Test.java:93)
代码如下:
private void sendJms(String xml) throws Exception {
QueueConnection queueConnection = null;
//Connection queueConnection = null;
QueueBrowser queueSender = null;
QueueSession queueSession = null;
try {
logger.info("FACTORY_INITIAL: "+FACTORY_INITIAL);
Context context = NamingHelper.singleton().getInitialContext(FACTORY_INITIAL, PROVIDER_URL, null, null, null);
QueueConnectionFactory queueConnectionFactory = (QueueConnectionFactory) context.lookup(FACTORY_NAME); //ConnectionFactory queueConnectionFactory = (javax.jms.ConnectionFactory ) context.lookup(FACTORY_NAME);
//javax.jms.ConnectionFactory
logger.info("队列的地址:" + PROVIDER_URL);
logger.debug("获取队列连接工厂成功");
logger.info("queueConnectionFactory OK FACTORY_NAME="+ FACTORY_NAME);
queueConnection = queueConnectionFactory.createQueueConnection();
//queueConnection = queueConnectionFactory.createConnection();
logger.debug("连接队列工厂成功");
queueConnection.start();
queueSession = queueConnection.createQueueSession(false,Session.AUTO_ACKNOWLEDGE);
//queueSession = (QueueSession) queueConnection.createSession(false, Session.AUTO_ACKNOWLEDGE);
Message message = queueSession.createTextMessage(xml);
// 发送消息到mdb
javax.jms.Queue queue = (javax.jms.Queue) context.lookup(QUEUE_NAME);
logger.debug("获取队列成功");
logger.info("context.lookup(QUEUE_NAME) OK QUEUE_NAME="+ QUEUE_NAME);
queueSender = (QueueBrowser) queueSession.createSender(queue);
logger.debug("发送的消息为:" + xml);
((QueueSender) queueSender).send(message);
logger.debug("发送消息成功");
} finally {
if (queueSender != null) {
try {
queueSender.close();
} catch (JMSException ex1) {
}
}
if (queueSession != null) {
try {
queueSession.close();
} catch (JMSException ex2) {
}
}
if (queueConnection != null) {
try {
queueConnection.close();
} catch (JMSException ex3) {
}
}
}
}
在本地直接调用,使用的是IBM的JDK。
WARNING: jndiGetObjInstNoop
Exception in thread "P=451515:O=0:CT" java.lang.ClassCastException: javax.naming.Reference incompatible with javax.jms.QueueConnectionFactory
at com.ztesoft.oss.js.flowbus.client.Test.sendJms(Test.java:146)
at com.ztesoft.oss.js.flowbus.client.Test.main(Test.java:93)
代码如下:
private void sendJms(String xml) throws Exception {
QueueConnection queueConnection = null;
//Connection queueConnection = null;
QueueBrowser queueSender = null;
QueueSession queueSession = null;
try {
logger.info("FACTORY_INITIAL: "+FACTORY_INITIAL);
Context context = NamingHelper.singleton().getInitialContext(FACTORY_INITIAL, PROVIDER_URL, null, null, null);
QueueConnectionFactory queueConnectionFactory = (QueueConnectionFactory) context.lookup(FACTORY_NAME); //ConnectionFactory queueConnectionFactory = (javax.jms.ConnectionFactory ) context.lookup(FACTORY_NAME);
//javax.jms.ConnectionFactory
logger.info("队列的地址:" + PROVIDER_URL);
logger.debug("获取队列连接工厂成功");
logger.info("queueConnectionFactory OK FACTORY_NAME="+ FACTORY_NAME);
queueConnection = queueConnectionFactory.createQueueConnection();
//queueConnection = queueConnectionFactory.createConnection();
logger.debug("连接队列工厂成功");
queueConnection.start();
queueSession = queueConnection.createQueueSession(false,Session.AUTO_ACKNOWLEDGE);
//queueSession = (QueueSession) queueConnection.createSession(false, Session.AUTO_ACKNOWLEDGE);
Message message = queueSession.createTextMessage(xml);
// 发送消息到mdb
javax.jms.Queue queue = (javax.jms.Queue) context.lookup(QUEUE_NAME);
logger.debug("获取队列成功");
logger.info("context.lookup(QUEUE_NAME) OK QUEUE_NAME="+ QUEUE_NAME);
queueSender = (QueueBrowser) queueSession.createSender(queue);
logger.debug("发送的消息为:" + xml);
((QueueSender) queueSender).send(message);
logger.debug("发送消息成功");
} finally {
if (queueSender != null) {
try {
queueSender.close();
} catch (JMSException ex1) {
}
}
if (queueSession != null) {
try {
queueSession.close();
} catch (JMSException ex2) {
}
}
if (queueConnection != null) {
try {
queueConnection.close();
} catch (JMSException ex3) {
}
}
}
}
在本地直接调用,使用的是IBM的JDK。
...全文
相关推荐
ActiveMQ系列(四)--------结合 Eclipse 操作(csdn)————程序.pdf
如果你遇到`javax.jms`相关的报错,可以添加JMS的依赖到`pom.xml`:```xml<dependency> <groupId>javax.jms</groupId> <artifactId
CXF与web项目服务端整合的例子以及客户端调用详细说明
编译和部署:编译项目,将结果部署到Web服务器,如Tomcat或Jetty。二、CXF客户端调用1.
activityMQ点对点学习
**队列链接工厂(QueueConnectionFactory)**:客户端使用它来创建与JMS点对点消息提供者的连接。3.
sspring深入1
Spring EE:对Java EE其他模块的支持,如JMS、JTA等。在实际开发中,遇到的一些常见问题包括:1. 服务器启动报错通常是由于缺少jar包或者jar包冲突。
ActiveMQ学习总结
"ActiveMQ学习总结"ActiveMQ是Apache软件基金会开发的一个开源消息中间件,它遵循Java消息服务(JMS)规范,旨在提供可靠的消息传递和高效的消息处理能力。在分布式系统中,消息



