Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 启动时加载问题tomcat_Java_Tomcat - Fatal编程技术网

Java 启动时加载问题tomcat

Java 启动时加载问题tomcat,java,tomcat,Java,Tomcat,我想在tomcat启动时加载一个类,它实际上会初始化其他类中的变量 我对appName/WEB-INF/WEB.xml进行了如下编辑 <servlet> <servlet-name>LoadConfigurations</servlet-name> <servlet-class>Loader.LoadConfigurations</servlet-class> <init-param> &

我想在tomcat启动时加载一个类,它实际上会初始化其他类中的变量

我对appName/WEB-INF/WEB.xml进行了如下编辑

<servlet>
    <servlet-name>LoadConfigurations</servlet-name>
    <servlet-class>Loader.LoadConfigurations</servlet-class>
    <init-param>
      <param-name>env</param-name>
      <param-value>dev</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

负载配置
Loader.LoadConfiguration
环境
发展
1.
我已经将servlet加载配置放在/appName/WEB-INF/classes中


如何检查servlet是否被调用?因为当我试图显示初始化类中的值时,它返回null,有两个问题:

  • 编译后的类需要进入基于包名的文件夹结构。在您的情况下,一个名为
    Loader

  • 为了调用servlet,您需要将
    添加到
    web.xml
    文件中


  • 初始化servlet时,容器应该调用servlet init()方法。实现/重写该方法,并尝试从那里向日志写入内容。

    这是Tomcat 7.0的解决方案

    步骤1: 为您的webapp/servlet创建war文件。 如果您使用的是Eclipse,请选择File->Export->Web->WAR文件,并将其保存到已知位置

    步骤2: 找到tomcat的主文件夹。 为此,请转到tomcat/apache-tomcat-7.0.41/bin并执行./startup.sh 这将打印出两个全局变量名。 记下CATALINA_家的那张

    步骤3: 从CATALINA_HOME/webapps中的步骤1复制war文件

    步骤4: 接下来,在CATALINA_HOME/conf/{Engine}/localhost/MyServlets.xml中创建一个xml文件:

    <?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
    <Context deployOnStartup="true" docBase="/home/ubuntu/Downloads/apache-tomcat-7.0.42/webapps/" reloadable="true">
    <Manager pathname=""/>
    </Context>
    
    
    
    将docBase更改为指向在步骤3中复制war文件的位置

    现在,您可以转到tomcat/apache-tomcat-7.0.41/bin并执行./startup.sh。 您的servlet将自动启动。
    希望这能有所帮助。

    我就是这样在tomcat 9上修复它的:

  • 编辑
    conf/context.xml
    文件,并将
    reloadable=“false”
    添加到
    标记中

  • 编辑
    conf/server.xml
    文件,并将
    deployOnStartup=“false”
    添加到
    标记中


  • 尝试将日志或System.out.println(“Inside constructor”)保存在构造函数和init()方法的开始和结束部分。检查您是否正在获取日志。