- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试从一个 swing 重型客户端(使用 Apache ActiveMQ 库)发送文本消息到一个似乎使用 OpenMQ 作为默认 JMS 提供程序的 glassfish 服务器实例。
在我为我的客户使用的基本源代码下面:
try {
ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory("jms/SaisieQueueFactory");
connectionFactory.setBrokerURL("tcp://localhost:27676");
Connection connection = connectionFactory.createConnection();
connection.start();
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
Destination destination = session.createQueue("jms/SaisieQueue");
MessageProducer producer = session.createProducer(destination);
producer.setDeliveryMode(DeliveryMode.PERSISTENT);
TextMessage message = session.createTextMessage("Score + 1");
producer.send(message);
session.close();
connection.close();
} catch(Exception ex) {
ex.printStackTrace();
}
我得到了这些异常(exception):
javax.jms.JMSException: Cannot send, channel has already failed: tcp://127.0.0.1:7676
at org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:62)
at org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1395)
at org.apache.activemq.ActiveMQConnection.ensureConnectionInfoSent(ActiveMQConnection.java:1481)
at org.apache.activemq.ActiveMQConnection.start(ActiveMQConnection.java:516)
at testdate.TestDate.main(TestDate.java:44)
Caused by: org.apache.activemq.transport.InactivityIOException: Cannot send, channel has already failed: tcp://127.0.0.1:7676
at org.apache.activemq.transport.AbstractInactivityMonitor.doOnewaySend(AbstractInactivityMonitor.java:282)
at org.apache.activemq.transport.AbstractInactivityMonitor.oneway(AbstractInactivityMonitor.java:271)
at org.apache.activemq.transport.TransportFilter.oneway(TransportFilter.java:85)
at org.apache.activemq.transport.WireFormatNegotiator.oneway(WireFormatNegotiator.java:104)
at org.apache.activemq.transport.MutexTransport.oneway(MutexTransport.java:68)
at org.apache.activemq.transport.ResponseCorrelator.asyncRequest(ResponseCorrelator.java:81)
at org.apache.activemq.transport.ResponseCorrelator.request(ResponseCorrelator.java:86)
at org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1366)
... 3 more
PS:我是 JMS 和 Java EE 框架的初学者
最佳答案
JMS API 定义了一个 java 接口(interface)和一个消息传递架构,它没有定义任何特定的有线协议(protocol),它可以是信鸽、内存或任何常见格式(STOMP、OpenWire、AMQP、MQTT)。
为什么不能在客户端中使用 Open MQ 库?这就是 JMS 的设计方式。您只需从 .jar 文件切换并更改 ConnectionFactory
。
我看不出有任何理由仅仅为了使用 ActiveMQ JMS 客户端而切换到 ActiveMQ,因为它应该与 Open MQ 客户端几乎相同。虽然还有其他切换的原因,例如不同的服务器端功能等等,但您没有提到这一点。
也就是说,有一个桥接组件能够通过 STOMP 协议(protocol)(ActiveMQ 支持)公开任何 JMS 服务器。
它叫做 Stomp Connect还有一些rather old instructions在 OpenMQ 页面如何使用它。
从那里,您应该能够连接到指定 STOMP 的 ActiveMQConnection 工厂。但我自己并没有真正尝试过这种组合。
关于java - 如何将 ActiveMQ 生产者连接到 OpenMQ JMS 代理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14838127/
我在本地安装了 openMQ,它运行良好。我使用以下代码通过 JNDI 查找获取 QueueConnectionFactory。 Hashtable env = new Hashtable(); en
我想使用 GlassFish 中的 OpenMQ 进行日志记录。我认为我的组件可以将消息放入此队列中,如果只有一个 mdb 从中使用,我应该能够按照它们排队的顺序接收所有消息。这会起作用以及如何起作用
我可以通过使用 JMX 调用 GET_DESTINATIONS 操作来查询队列。这样我将收到队列信息(属性)。我现在想查询存储在该队列中的消息,可以吗?有人可以给我一些指导吗? 我已经尝试过使用此代码
请帮助 MQ nubee 编写他的第一个 Java 客户端,我在 Oracle 文档中有点迷失了。我已经启动并运行了 OpenMQ。在 OpenMQ 管理控制台中,我建立了一个名为“MyFirstTe
我正在尝试从一个 swing 重型客户端(使用 Apache ActiveMQ 库)发送文本消息到一个似乎使用 OpenMQ 作为默认 JMS 提供程序的 glassfish 服务器实例。 在我为我的
我是一名优秀的程序员,十分优秀!