2 回答
TA贡献1776条经验 获得超12个赞
通常在典型的 java web 应用程序(war)结构中——编译后的类文件应该在文件夹中结束WEB-INF/classes
(除非它们可以作为 jar 归档,然后它们也可以在 WEB-INF/lib 中)。因此,请尝试将项目的构建路径更改为<your-project>/WebContent/WEB-INF/classes
. 您可以参考下面所附的屏幕截图
这是我尝试使用的类以及启动服务器时控制台上的输出
package Bot;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
/**
* Application Lifecycle Listener implementation class CarregarBot
*
*/
public class CarregarBot implements ServletContextListener {
@Override
public void contextInitialized(ServletContextEvent event) {
System.out.println("CarregarBot initialized");
}
@Override
public void contextDestroyed(ServletContextEvent event) {
}
}
控制台输出
Aug 27, 2019 1:22:47 AM org.apache.catalina.core.StandardContext reload
INFO: Reloading Context with name [/TestWebApp] has started
CarregarBot initialized
Aug 27, 2019 1:22:47 AM org.apache.catalina.core.StandardContext reload
INFO: Reloading Context with name [/TestWebApp] is completed
TA贡献1752条经验 获得超4个赞
好的,所以你的代码看起来都很好(好,可操作),没有问题。我 99% 确定这不是代码问题,而是构建/部署问题。
我建议您执行以下操作:
0) 如果您使用 Maven 并具有 servlet-api 依赖项,请检查 servlet-api 依赖项范围(如果更改任何内容,请从 Maven 上下文菜单进行项目更新),否则请确保检查导出和部署程序集
1)清理项目(在 eclipse 项目 -> Clean 中)
2)清理tomcat工作目录并部署和/或重新部署(或启动一个全新的Tomcat实例)
3)如果它仍然不起作用,请尝试打开war文件(或者如果从eclipse部署,请转到Tomcat工作目录并导航到侦听器应位于的文件夹)并检查它是否确实存在。
4)如果没有,请查看是否可以在“问题”视图中找到任何问题,以了解为什么未构建它
5)如果问题仍然存在,还请检查类输出文件夹的设置,如 @Shailendra 所描述并重做步骤 1-4。
添加回答
举报