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

WEB-INF/lib中的Tomcat自定义库jar文件

王英彦
2023-03-14

根据这个问题,我创建了一个实现Catalina LifecycleListener类的类。

如何在Tomcat启动时运行脚本?

当我将JAR文件放置在webapps/root/web-inf/lib中时,Tomcat启动失败,出现类未找到的异常:

java.lang.ClassNotFoundException:Net.Company.Tomcat.StartupEventHookListener

但是当我将文件放在appserver/lib中时,它会启动,然后在应用程序启动完毕时按预期运行代码。

我的理解是,WEB-INF/lib中的所有JAR文件对我的webapp(ROOT)都可用,我正在尝试为我的webapp挂接事件生命周期。

我是否真的与Tomcat的生命周期挂钩,因此需要使用AppServer/lib库?

我刚才是不是回答了我自己的问题?

共有1个答案

吕英才
2023-03-14

Tomcat启动发生在任何webapp启动之前,甚至是根webapp。并且用于在Tomcat生命周期中配置的东西的类路径从不包括任何webapp(甚至是根webapp)中的任何jar文件或.class文件。

 类似资料:
  • 如何才能缓解这种情况?

  • 我在webapp/WEB-INF/lib/文件夹下添加了一个依赖项。 当我使用maven构建时,我希望在war中将它复制到WEB-INF/lib,而不是WEB-INF/classes/WEB-INF/lib。我正在寻找这是使用maven本身来完成的。 我已经在pom文件中提到了打包作为战争,但是依赖项没有被复制。我是不是在pom文件里漏掉了什么。我已经复制了下面的pom: 附上战争内容截图。

  • 问题内容: 我正在使用Eclipse,我需要能够将Java库(JAR文件)添加到Web应用程序的文件夹中。我该如何实现? 问题答案: 将jar文件添加到您的WEB-INF / lib文件夹中。 在Eclipse中右键单击您的项目,然后转到“构建路径>配置构建路径” 添加“ Web应用程序库”库 这将确保所有WEB-INF / lib jar都包含在类路径中。

  • 上下文 我正在做一个使用JUNG图书馆的项目。我的自定义java代码和Jung库都放在wwwroot/WEB-INF/lib下。 注意,JUNG的某些类依赖于Apache commons集合。jar,它也存在于同一文件夹中(默认由CF提供)。 问题 我们正计划从CF7迁移到CF10,因此,我正在对项目中的所有代码进行试点测试,发现某些代码(使用JUNG)出现“未找到类”异常而失败。 关于调试和检查

  • 我通过一个自定义的Spring错误页面来处理所有的404错误。这很好,但有一个例外。URI/WEB-INF首先被Tomcat拦截。将显示默认的Tomcat错误页面。 如何将URI/WEB-INF重定向到另一个URI,例如/404,或者简单地阻止Tomcat拦截它? 谢谢你!

  • 同时,我也想坚持使用动态Web项目或将其改为Maven项目。