我有一个调用MMQ侦听器的Java Servlet。我正在Tomcat服务器中部署应用程序
AppServlet.java
package com.cisco.cstg.platform;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class AppServlet extends HttpServlet {
/**
*
*/
private static final long serialVersionUID = 1L;
MessageListenerImpl m;
public void init(ServletConfig config) throws ServletException {
//super.init(config);
//MainApp.main(null);
m = MainApp.init();
MainApp.start(m);
}
public void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
PrintWriter out = res.getWriter();
boolean dbStatus = EMANApi.isDBUpAndRunning();
if (dbStatus == true) {
out.print("SUCCESS");
} else {
out.print("FAILED");
}
}
public void destroy() {
MainApp.stop(m);
}
}
MainApp.java
package com.cisco.cstg.platform;
import com.cisco.cstg.utilities.UtilClass;
public class MainApp {
public static final org.apache.log4j.Logger log = org.apache.log4j.Logger
.getLogger(MainApp.class);
// Input arguments
public static long keepAliveMinutes = 1L;
public static boolean debug;
public static void main(String args[]) {
MainApp.fetchArgs(args);
initLogging();
if (debug)
log.info(UtilClass.getCurrentDate()
+ "Run Connector Message App for reading the queue");
MessageListenerImpl m = MainApp.init();
MainApp.start(m);
UtilClass.keepAlive(keepAliveMinutes);
// MainApp.stop(m);
if (debug)
log.info(UtilClass.getCurrentDate()
+ "Run Connector CSOC Message App");
}
private static void fetchArgs(String[] args) {
debug = log.isDebugEnabled();
keepAliveMinutes = Integer.MAX_VALUE; // value is 2147483647 ms
if (debug)
log.info(UtilClass.getCurrentDate() + "Found keepAliveMinutes: "
+ keepAliveMinutes + " debug: " + debug);
}
private static void initLogging() {
if (debug)
log.info(UtilClass.getCurrentDate() + "::initLogging Started");
if (debug)
log.info(UtilClass.getCurrentDate()
+ "::Log level set"
+ UtilClass.getProperties().getProperty(
UtilClass.PropertyKeys.PROP_LOG_LEVEL));
}
public static MessageListenerImpl init() {
if (debug)
log.info(UtilClass.getCurrentDate()
+ "::Instantiating MessageListenerImpl");
MessageListenerImpl m = new MessageListenerImpl();
if (debug)
log.info(UtilClass.getCurrentDate()
+ "::Instantiated MessageListenerImpl");
return m;
}
public static void start(MessageListenerImpl m) {
if (debug)
log.info(UtilClass.getCurrentDate() + "::Starting instance");
m.start();
if (debug)
log.info(UtilClass.getCurrentDate() + "::Started instance");
}
public static void stop(MessageListenerImpl m) {
if (debug)
log.debug(UtilClass.getCurrentDate() + "::Stopping instance");
m.stop();
System.exit(1); // to stop the java program
if (debug)
log.debug(UtilClass.getCurrentDate() + "::Stopped instance");
}
}
servlet基本上调用启动init
的{{1}}中的MainApp
方法。但是当我直接调用Listener
方法时,日志记录不起作用。当我直接从init
调用main
方法时,Tomcat服务器没有开始。请告诉我这里出了什么问题。
的web.xml
AppServlet
catalina.out中
31-Jul-2015 09:13:40.822 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log服务器版本: Apache Tomcat / 8.0.24 31-Jul-2015 09:13:40.823 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log服务器内置:
2015年7月1日20:19:55 UTC 31-Jul-2015 09:13:40.823 INFO [主要] org.apache.catalina.startup.VersionLoggerListener.log服务器编号:
8.0.24.0 31-Jul-2015 09:13:40.823 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log操作系统名称:
Windows 7 31-Jul-2015 09:13:40.824 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log操作系统版本:
6.1 31-Jul-2015 09:13:40.824 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log架构:
amd64 31-Jul-2015 09:13:40.824 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home:
C:\ Program Files \ Java \ jdk1.8.0_25 \ jre 31-Jul-2015 09:13:40.824 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM 版本:1.8.0_25-b18 31-Jul-2015 09:13:40.824 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM供应商:
Oracle Corporation 31-Jul-2015 09:13:40.824 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE:
C:\ apache-tomcat-8.0.24 31-Jul-2015 09:13:40.825 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME:
C:\ apache-tomcat-8.0.24 31-Jul-2015 09:13:40.825 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log命令行 参数: -Djava.util.logging.config.file = C:\ Apache的Tomcat的8.0.24 \ CONF \ logging.properties 2015年7月31日09:13:40.825 INFO [主要] org.apache.catalina.startup.VersionLoggerListener.log命令行 参数: -Djava.util.logging.manager = org.apache.juli.ClassLoaderLogManager 31-Jul-2015 09:13:40.826 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log命令行 参数:-Djava.endorsed.dirs = C:\ apache-tomcat-8.0.24 \ endorsed
2015年7月31日09:13:40.826信息[主要] org.apache.catalina.startup.VersionLoggerListener.log命令行 参数:-Dcatalina.base = C:\ apache-tomcat-8.0.24 2015年7月31日 09:13:40.827 INFO [主要] org.apache.catalina.startup.VersionLoggerListener.log命令行 参数:-Dcatalina.home = C:\ apache-tomcat-8.0.24 2015年7月31日 09:13:40.828 INFO [主要] org.apache.catalina.startup.VersionLoggerListener.log命令行 参数:-Djava.io.tmpdir = C:\ apache-tomcat-8.0.24 \ temp 2015年7月31日 09:13:40.828 INFO [主要] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent已加载 使用APR版本1.5.1的基于APR的Apache Tomcat Native库1.1.33。 2015年7月31日09:13:40.829信息[主要] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR 功能:IPv6 [true],sendfile [true],接受过滤器[false], 随机[true]。 2015年7月31日09:13:41.537 INFO [主要] org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL 已成功初始化(OpenSSL 1.0.1m 2015年3月19日)2015年7月31日 09:13:41.686 INFO [main] org.apache.coyote.AbstractProtocol.init 初始化ProtocolHandler [" http-apr-8080"] 2015年7月31日 09:13:41.695 INFO [main] org.apache.coyote.AbstractProtocol.init 初始化ProtocolHandler [" ajp-apr-8009"] 2015年7月31日 09:13:41.697 INFO [main] org.apache.catalina.startup.Catalina.load 初始化处理时间为1342 ms 31-Jul-2015 09:13:41.726 INFO [main] org.apache.catalina.core.StandardService.startInternal Starting 服务Catalina 31-Jul-2015 09:13:41.727 INFO [main] org.apache.catalina.core.StandardEngine.startInternal启动Servlet 引擎:Apache Tomcat / 8.0.24 31-Jul-2015 09:13:41.756 INFO [本地主机 - startStop-1] org.apache.catalina.startup.HostConfig.deployWAR部署Web 应用档案 C:\ apache-tomcat-8.0.24 \ webapps \ CSPC_greenfield.war 2015年7月31日 09:13:43.653 INFO [localhost-startStop-1] org.apache.jasper.servlet.TldScanner.scanJars至少有一个JAR 扫描TLD但尚未包含TLD。为此启用调试日志记录 记录器获取已扫描但没有TLD的JAR的完整列表 发现在他们身上。在扫描期间跳过不需要的JAR可以改善 启动时间和JSP编译时间。 2015年7月31日09:13:43.907 INFO [本地主机 - startStop-1] org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom 使用创建会话ID生成的SecureRandom实例 [SHA1PRNG]花了[222]毫秒。
答案 0 :(得分:-1)
当我在MainApp.init()方法中调用MainApp中的调试和其他方法时,问题得以解决。