当前位置: 首页 > 知识库问答 >
问题:

由于Java程序,Tomcat未启动

钱宇
2023-03-14

我有一个调用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);

    }

}
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");

    }

}
<session-config>
    <session-timeout>60</session-timeout>
</session-config>
<display-name>Archetype Created Web Application</display-name>
<servlet>
    <servlet-name>appServlet</servlet-name>
    <servlet-class>com.cisco.cstg.platform.AppServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>appServlet</servlet-name>
    <url-pattern>/eman</url-pattern>
</servlet-mapping>

共有1个答案

孔冥夜
2023-03-14

当我在MainApp.init()方法中调用MainApp中的debug和其他方法时,这个问题得到了解决。

 类似资料:
  • 我正试图在我的tomcat manager上启动我的网络应用程序,但它没有启动。我正在读取webapp的日志文件,出现以下错误: 8-giu-2017 9.41.12org.apache.catalina.core.标准上下文启动GRAVE:错误listenerStart 8-giu-2017 9.41.12org.apache.catalina.core.标准上下文启动GRAVE: Contex

  • 问题内容: 我在CentOS 6.6 32位和openJDK7上使用Tomcat 7.0.57。当我在服务器(生产环境)上启动14个不同的Tomcat实例时,它们中的许多启动时间都太多了。 这是启动日志的一部分,它告诉我所有时间都花在哪里 解决此问题的最佳实践/解决方案是什么? 谢谢! 问题答案: 安全的随机调用可能会被阻止,因为没有足够的熵来将它们提供给/ dev / random。 如果你有线

  • 我构建了一个侦听JMS.queue的简单MDB应用程序,并将其部署在IBM WARS 8.5.5上(使用IBM MQ作为JMS代理),当尝试启动它时,我收到以下错误(对不起,西里尔符号,尝试仔细翻译): 我的消息驱动ejb-mdb模块MDBListener.java: ejb-mdb模块ejb-jar.xml: ejb-mdb模块ibm-ejb-jar-bnd.xml:

  • 我在我的应用程序中使用Jasper报表生成报表。我还提供了下载PDF/CSV格式报告的设施。但我面临的问题是,每当我上传一个新的war文件(无论是否对用于设计报告的JRXML文件进行了更改)时,我都必须启动/停止tomcat服务器。除非我这样做,否则我无法生成报告。没有看到日志,没有发生任何事情,也没有生成报告。当我重新启动服务器时,一切都像一个魅力一样开始工作。生成报告,其他一切都很好。为什么会

  • 我检查了它引用的目录,有一个catalina.sh文件,但没有。bat文件。有谁知道获取这个文件的提示或者如何让NetBeans运行。sh文件吗?

  • 它构建应用程序并按预期将其部署到Jetty。 现在我也想将相同的应用程序部署到Tomcat7,为了实现同样的目的,我运行了gradle war任务,如下所示: 运行该任务后,我可以在中看到deploy-1.0.war,当我试图将它部署到Tomcat7时,Tomcat没有接收到它。 我的问题是--我需要应用任何附加的插件来使应用程序可部署到Tomcat7吗? 多谢了。