【问题标题】:can i run two copies of the same war in different context paths on tomcat?我可以在tomcat的不同上下文路径中运行同一个战争的两个副本吗?
【发布时间】:2011-02-07 23:14:29
【问题描述】:

我在 tomcat 的上下文路径中运行我的战争 - 比如说 /path1。

我对我的代码库进行了更多更改,添加了更多类、jar 等,现在在不影响 /path1 上运行的第一次战争的情况下,我想将这场战争添加到 /path2。

这个可以吗?

因为当我尝试这个时,第二次战争在弹簧加载时无法开始 -

SEVERE: Error listenerStart
Feb 7, 2011 4:46:44 PM org.apache.catalina.core.StandardContext start
SEVERE: Context [/path2] startup failed due to previous errors

虽然我已将日志级别设置为调试,但没有堆栈跟踪或任何东西。

我认为代码没有问题,因为当我在本地机器和第一个未运行的服务器上运行它时,它工作正常。当我尝试在 /path1 处于活动状态的服务器上运行它时,它会失败。

谢谢!

【问题讨论】:

  • 您应该在 Tomcat 的日志目录中的一个日志中找到一些额外的日志消息
  • 这意味着什么吗?信息: validateJarFile(/usr/share/tomcat6/webapps/path2/WEB-INF/lib/servlet-api-2.3.jar) - jar 未加载。请参阅 Servlet 规范 2.3,第 9.7.2 节。违规类:javax/servlet/Servlet.class。这出现在 listenerStart 错误之前。
  • 请注意亚当的评论。 Tomcat 的启动错误记录在 Tomcat 自己的日志文件中,而不是 webapp 自己的日志文件中。查看 Tomcat 的 /logs 文件夹。至于 INFO 消息,这已经是一种气味:您不应该在它所属/起源之外的类路径中的任何其他位置(servletcontainer 本身的 /lib 文件夹)中的任何其他地方拥有 servletcontainer 特定库的任何副本,因此也 不在您的 webapp 的 /WEB-INF/lib 文件夹中。删除/WEB-INF/lib 中所有特定于 servletcontainer 的库。

标签: java spring tomcat6


【解决方案1】:

“listenerStart”位表明错误出现在 ServletContextListener 中,因此如果您的代码中有任何这些错误,请仔细查看,看看它们在做什么;他们是否正在访问其他实例可能尝试共享的任何资源?

【讨论】:

  • 感谢您的所有回答!不能花更多时间在这上面。不得不继续前进。所以我关闭了另一个实例并运行了新的战争,它运行良好。所以也许它与共享资源有关!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-07-02
  • 1970-01-01
  • 2011-06-08
  • 1970-01-01
  • 2015-06-19
  • 1970-01-01
  • 2011-02-17
相关资源
最近更新 更多