【问题标题】:Log4j JMS appender sends empty message to STOMP clientLog4j JMS appender 向 STOMP 客户端发送空消息
【发布时间】:2015-07-05 16:03:05
【问题描述】:

我正在使用 log4j JMS appender 来转发日志消息。并且正在使用 STOMP-CLIENT 运行 Node JS,以监听 activemq,接收转发的日志消息

现在的问题是,每当转发日志时,收到的消息都是空的

这是我的 stomp 客户端代码

var Stomp = require('stomp-client');
var destination = '/topic/logTopic';
var client = new Stomp('127.0.0.1', 61613, '', '');
client.connect(function(sessionId) {
    client.subscribe(destination, function(body, headers) {     
        console.log('Mesage');
      console.log(body); //This is empty
    });       

});

这是我的 Log4.j 属性

log4j.rootLogger=INFO, stdout, jms

## Be sure that ActiveMQ messages are not logged to 'jms' appender
log4j.logger.org.apache.activemq=INFO, stdout

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %-5p %c - %m%n

## Configure 'jms' appender. You'll also need jndi.properties file in order to make it work
log4j.appender.jms=org.apache.log4j.net.JMSAppender
log4j.appender.jms.InitialContextFactoryName=org.apache.activemq.jndi.ActiveMQInitialContextFactory
log4j.appender.jms.ProviderURL=tcp://localhost:61616
log4j.appender.jms.TopicBindingName=logTopic
log4j.appender.jms.TopicConnectionFactoryBindingName=ConnectionFactory

【问题讨论】:

  • 您是否检查过 ActiveMQ 管理 Web 界面中的主题消息?邮件正文在那里可见吗?
  • 我看到的东西非常相似。问题不是 STOMP,而是我的 Logback 客户端。 (使用队列浏览器,消息为空)

标签: node.js log4j jms activemq stomp


【解决方案1】:

尝试设置:

<bean class="org.apache.activemq.util.XStreamFactoryBean" name="xstream">
     <property name="annotatedClass"> 
            <value>org.apache.activemq.transport.stomp.SamplePojo</value>
     </property>
</bean>

http://activemq.2283324.n4.nabble.com/Active-MQ-sends-empty-message-bodies-via-Stomp-td2364203.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-06-27
    • 2021-06-04
    • 2021-03-17
    • 2016-02-17
    • 2021-02-08
    • 2015-04-07
    • 2019-04-29
    • 1970-01-01
    相关资源
    最近更新 更多