【问题标题】:Fail to start application after deploy to tomcat部署到tomcat后无法启动应用程序
【发布时间】:2020-08-16 10:30:48
【问题描述】:

我有一个 linux vps,我安装了 tomcat 9,一切正常。但是在我将 Java Spring MVC 战争文件部署到 tomcat(我们称之为 example.war)之后,当我按下“开始”时,它显示一条消息:FAIL - Application at context path [/example] could not be started(我使用了 tomcat 管理器)。我的 Java Spring 项目以前是通过我家电脑上的 tomcat 7 插件部署的。

【问题讨论】:

  • 这是一个“过于笼统”的问题。这么多东西会出错,我建议看一下tomcat的日志,看看有没有相关的ERRORS。另一种选择是检查应用程序本身的日志(以防它使用日志系统)——可能是“应用程序级别”问题。
  • 日志显示:“java.lang.ClassNotFoundException: org.springframework.web.filter.CharacterEncodingFilter”,我在家用电脑上的tomcat 9上运行这个项目时也遇到了这个问题。

标签: java spring-mvc vps


【解决方案1】:
java.lang.ClassNotFoundException: org.springframework.web.filter.CharacterEncodingFilter

基本上意味着您的应用程序的类路径中没有可用的类。 这个类是jar的一部分spring-web-<YOUR_VERSION_OF_SPRING>.jar

所以首先打开你的 WAR 文件并检查它是否在 WEB-INF/lib 文件夹中。 如果不是变化是它被部署到tomcat 7的lib文件夹中(有效),并且在你的linux机器和开发PC上的tomcat 9中没有像这样的jar。

【讨论】:

  • 我检查了它不存在,我该如何解决这个问题?另外,我尝试在我的家用电脑上使用“本地主机上的 tomcat v7.0 服务器”运行项目,它抛出了同样的错误,但该项目在 tomcat7-maven-plugin 上运行良好。我真的不明白为什么
  • 修复很简单:将 spring-web 添加到 maven 依赖项列表中(或您使用并重新构建的任何构建系统)。然后再次检查WEB-INF/lib jar 应该在那里。尝试在tomcat 7、tomcat 9等上运行
  • 我已经有一个 spring web 依赖,我认为这不是一个解决方案
最近更新 更多