【发布时间】:2021-03-12 23:07:51
【问题描述】:
我正在使用 ActiveMQ 5.16.1。我正在尝试使用以下代码 sn-p 通过BrokerFilter 类的 send 消息发送有关主题的消息。
public void addConnection(ConnectionContext context, ConnectionInfo info) throws Exception {
try {
ActiveMQTextMessage message = new ActiveMQTextMessage();
message.setText("hello");
message.setType("abc");
ActiveMQDestination amqDestination = new ActiveMQTopic();
amqDestination.setPhysicalName("HELLO");
message.setDestination(amqDestination);
ProducerBrokerExchange producerBrokerExchange = new ProducerBrokerExchange();
producerBrokerExchange.setConnectionContext(context);
send(producerBrokerExchange,message);
}
catch (Exception ex) {
logger.error("error while sending message");
logger.error(ex.toString());
}
}
public void send(final ProducerBrokerExchange producerExchange, final Message messageSend) throws Exception {
super.send(producerExchange,messageSend);
}
在调用被覆盖的 send 方法时,我得到:
java.lang.NullPointerException
at org.apache.activemq.broker.region.Topic.send(Topic.java:367)
at org.apache.activemq.broker.region.AbstractRegion.send(AbstractRegion.java:508)
at org.apache.activemq.broker.region.RegionBroker.send(RegionBroker.java:477)
at org.apache.activemq.broker.jmx.ManagedRegionBroker.send(ManagedRegionBroker.java:293)
at org.apache.activemq.broker.BrokerFilter.send(BrokerFilter.java:154)
at org.apache.activemq.broker.CompositeDestinationBroker.send(CompositeDestinationBroker.java:96)
at org.apache.activemq.broker.TransactionBroker.send(TransactionBroker.java:295)
at org.apache.activemq.broker.BrokerFilter.send(BrokerFilter.java:154)
at com.ef.apps.amq.plugin.TopicAuthorization.send(TopicAuthorization.java:85)
at com.ef.apps.amq.plugin.TopicAuthorization.addConnection(TopicAuthorization.java:67)
at org.apache.activemq.broker.BrokerFilter.addConnection(BrokerFilter.java:99)
at org.apache.activemq.broker.TransportConnection.processAddConnection(TransportConnection.java:844)
at org.apache.activemq.broker.jmx.ManagedTransportConnection.processAddConnection(ManagedTransportConnection.java:77)
at org.apache.activemq.command.ConnectionInfo.visit(ConnectionInfo.java:139)
at org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:331)
at org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:200)
at org.apache.activemq.transport.MutexTransport.onCommand(MutexTransport.java:50)
at org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:125)
at org.apache.activemq.transport.AbstractInactivityMonitor.onCommand(AbstractInactivityMonitor.java:301)
at org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:83)
at org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:233)
at org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:215)
at java.lang.Thread.run(Thread.java:748)
我的要求是在创建新连接时发送有关主题的消息。
【问题讨论】:
-
请附上异常详情,否则你只是让人们猜测
-
我正在使用 ActiveMQ 5.16.1