0

我是新手JMSActivemq使用 Google 和堆栈溢出帮助我正在从我的 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
    }
}
}

如果我使用 .java 运行这个文件Apache Tomcat,它工作正常,但我收到以下警告。

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.

我怎样才能解决这个问题。

谢谢。

4

2 回答 2

1

这不是 ActiveMq 警告;这是一个 log4j 警告。

  1. 如果您在 Tomcat 中运行,请获取标准log4j.propertieslog4j.xml文件。

  2. 为您的环境配置它。

  3. 将日志文件放在<TOMCAT>/webapps/<MyProject>/WEB-INF/classes,或者,将 WAR 文件放在相同的相对路径下:/WEB-INF/classes

于 2013-08-08T16:40:54.640 回答
0
No appenders could be found for logger ...

意味着您没有与 rootLogger 相关的记录器。这意味着,WireFormatNegotiator 正在尝试记录某些内容,但没有找到记录器。既不是控制台也不是文件或其他任何东西。

例如,在我的项目中,我记录了 com.foo 包中的所有日志记录语句,因此我的属性如下所示:

log4j.logger.com.foo=DEBUG, MYPROJECT
... 

后来我有

 log4j.appender.MYPROJECT=org.apache.log4j.RollingFileAppender

和其他 RollingFileAppender 细节。log4j.properties 应该在您的类路径中。典型的位置是 web-inf/classes。

于 2013-08-08T20:06:35.060 回答