加载启动问题tomcat

时间:2011-09-16 21:19:57

标签: java tomcat

我想在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>

我将servlet LoadConfiguration放在/ appName / WEB-INF / classes

我如何检查servlet是否被调用?因为当我尝试显示初始化类的值时,它返回null

4 个答案:

答案 0 :(得分:1)

有两个问题:

  1. 编译后的类需要根据包名进入文件夹结构。在您的情况下,名为Loader

  2. 的文件夹
  3. 要调用servlet,您需要在<ServletMapping>文件中添加web.xml

答案 1 :(得分:1)

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

答案 2 :(得分:0)

这是Tomcat 7.0的解决方案

第1步:   为您的webapp / servlets创建war文件。   如果您使用的是Eclipse,File-&gt; Export-&gt; Web-&gt; WAR文件,请将其保存到已知位置。

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

第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将自动启动。 希望这会有所帮助。

答案 3 :(得分:0)

这是我在tomcat 9上修复它的方法:

  1. 编辑conf/context.xml文件,并将reloadable="false"添加到<Context>标签。

    <Context reloadable="false">

  2. 编辑conf/server.xml文件,并将deployOnStartup="false"添加到<Host>标签。

    <Host appBase="webapps" deployOnStartup="false" …>