问题描述
我是JMS和Activemq的新手.使用Google和stack Overflow帮助我将消息从我的Java程序发送到Activemq使用以下代码.
package PackageName; import java.io.IOException; import javax.jms.Connection; import javax.jms.ConnectionFactory; import javax.jms.Queue; import javax.jms.Session; import javax.jms.TextMessage; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.activemq.ActiveMQConnectionFactory; //@SuppressWarnings("serial") public class MessageProducer extends HttpServlet { @Override protected void service(HttpServletRequest arg0, HttpServletResponse arg1) throws ServletException, IOException { try { //created ConnectionFactory object for creating connection ConnectionFactory factory = new ActiveMQConnectionFactory("admin","admin","tcp://localhost:61617"); //Establish the connection Connection connection = factory.createConnection(); Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); Queue queue = session.createQueue("MessageTesing123"); //Added as a producer javax.jms.MessageProducer producer = session.createProducer(queue); // Create and send the message TextMessage msg = session.createTextMessage(); msg.setText("TestMessage3"); producer.send(msg); } catch (Exception e) { // TODO: handle exception } } }
如果我使用Apache Tomcat运行此.java文件,则可以正常工作,但是我会收到以下警告.
log4j:WARN No appenders could be found for logger (org.apache.activemq.transport.WireFormatNegotiator).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
我该如何修复.
谢谢.
推荐答案
这不是ActiveMQ警告;这是log4j警告.
-
如果您在Tomcat跑步,请获得标准log4j.properties或 log4j.xml文件.
-
为您的环境配置它.
-
将日志文件放在<TOMCAT>/webapps/<MyProject>/WEB-INF/classes上,或放入 在相同的相对路径下的战争文件:/WEB-INF/classes
其他推荐答案
No appenders could be found for logger ...
表示您没有与rootlogger有关的记录仪.这意味着WireFormatNogotiator试图记录某些内容,但没有发现记录器.既不是控制台,也不是其他任何东西.
例如,在我的项目中,我记录了来自package com.foo的所有记录语句,因此我的属性看起来像:
log4j.logger.com.foo=DEBUG, MYPROJECT ...
和以后的我有
log4j.appender.MYPROJECT=org.apache.log4j.RollingFileAppender
和其他RollingFileAppender的详细信息. log4j.properties应该在您的课程中.典型的位置是Web-Inf/类.
问题描述
I am new to JMS and Activemq.using Google and stack overflow help I am sending messages from my Java program to Activemq using the following code.
package PackageName; import java.io.IOException; import javax.jms.Connection; import javax.jms.ConnectionFactory; import javax.jms.Queue; import javax.jms.Session; import javax.jms.TextMessage; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.activemq.ActiveMQConnectionFactory; //@SuppressWarnings("serial") public class MessageProducer extends HttpServlet { @Override protected void service(HttpServletRequest arg0, HttpServletResponse arg1) throws ServletException, IOException { try { //created ConnectionFactory object for creating connection ConnectionFactory factory = new ActiveMQConnectionFactory("admin","admin","tcp://localhost:61617"); //Establish the connection Connection connection = factory.createConnection(); Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); Queue queue = session.createQueue("MessageTesing123"); //Added as a producer javax.jms.MessageProducer producer = session.createProducer(queue); // Create and send the message TextMessage msg = session.createTextMessage(); msg.setText("TestMessage3"); producer.send(msg); } catch (Exception e) { // TODO: handle exception } } }
If I run this .java file using Apache Tomcat,it's working fine but I am getting the following warnings.
log4j:WARN No appenders could be found for logger (org.apache.activemq.transport.WireFormatNegotiator).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
How can I fix this.
Thanks.
推荐答案
This is not an ActiveMq warning; it's a log4j warning.
If you're running in Tomcat, get a standard log4j.properties or log4j.xml file.
Configure it for your environment.
Place log file at <TOMCAT>/webapps/<MyProject>/WEB-INF/classes, or, put in WAR file under same relative path: /WEB-INF/classes
其他推荐答案
No appenders could be found for logger ...
Means you dont have a logger relating to a rootLogger. Which means, WireFormatNegotiator is trying to log something, but finds no logger. Neither console nor file or anything else.
For example, in my project I log all logging statements from package com.foo so my properties looks like :
log4j.logger.com.foo=DEBUG, MYPROJECT ...
and later on I have
log4j.appender.MYPROJECT=org.apache.log4j.RollingFileAppender
and other RollingFileAppender details. The log4j.properties should be in your class path. Typical location is web-inf/classes.