node.js - Log4j JMS 附加程序向 STOMP 客户端发送空消息

标签 node.js log4j jms activemq stomp

我使用 log4j JMS 附加程序来转发日志消息。我正在使用 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

最佳答案

尝试设置:

<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

关于node.js - Log4j JMS 附加程序向 STOMP 客户端发送空消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29891721/

相关文章:

java - Apache Camel 中的窃听和多播有什么区别

node.js - 如何动态生成cube.js的模式?

java - 在 osgi maven 包中以编程方式更改 log4j 文件名不起作用

log4j - 如何将 log4j.xml 转换为 logback.xml?

grails - 在grails中使用文件附加器和stdout记录配置

rabbitmq - 队列公平性和消息服务器

javascript - 如何将代码移出主 server.js 文件,但在应用程序启动时仍然使用它?

mysql - 使用 zongji 模块监听 mysql 更改事件不起作用

node.js - 在弹性 beantalk 的 container_commands 中执行命令时没有路径

java - 如何在当前线程的目标对象上触发事件