50

我刚刚在我的 Ubuntu 11.10 上下载了 Tomcat 7.0.23 包。

我按照 Google API 网站上的说明部署了他们的示例 webapp。它基本上由jar放置在WEB-INF/lib目录中的web.xml文件和放置在目录中的文件组成WEB-INF

然而,该应用程序并未自动部署,当试图强制服务器通过管理器 gui 部署它时,我收到以下消息:

FAIL - Application at context path /myWebApp could not be started
FAIL - Encountered exception org.apache.catalina.LifecycleException: 
         Failed to start component 
         [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/myWebApp]]

但是,Tomcat 提供的 JSP 示例确实有效!

我在Tomcat6上有同样的问题。

那么我做错了什么?这是权限问题吗?(我什至尝试将所有文​​件的mod更改为777)。

4

16 回答 16

60

这意味着您的应用程序配置或启动有问题。

日志中总是有相关信息 - 检查logs/catalina.out并找出问题所在。

于 2011-12-14T22:55:09.513 回答
5

我遇到了这个问题,它只是无法部署在 Tomcat 上,然后我从所有 servlet 代码中删除了所有 @webServlet 注释并成功部署。

于 2014-01-10T20:30:11.890 回答
4

从构建路径中删除 servlet-api.jar 并将其添加到 web-inf lib 文件夹中,然后导出 WAR 文件..它会工作...干杯..!!!

于 2013-01-22T12:46:34.983 回答
2

检查 WEB-INF/web.xml 文件中的 servlet 映射。

于 2012-11-30T07:29:44.107 回答
1

在eclipse中...转到服务器视图...右键单击tomcat服务器->添加或删除程序->删除所有其他项目。现在尝试运行该项目。它应该工作。

于 2013-07-10T14:40:34.543 回答
0

我被卡住了,问题解决了 不要使用“映射网络驱动器”的路径,而是使用 \server\folder 结构

于 2013-11-10T18:45:09.960 回答
0

我以同样的方式完成了它现在的工作。实际上 web.xml 文件有错误的 url 模式。您可以删除一个 url-pattern 注释表单 servlet 或 web.xml。它对我有用。

于 2014-10-22T09:46:21.727 回答
0

面对这种现象时,我出现了内存不足错误:

Caused by: java.lang.OutOfMemoryError: PermGen space

释放一些内存后,问题就解决了。

于 2014-11-23T17:56:43.857 回答
0

还有一个变化是 Eclipse 项目以某种方式损坏。通常像这样的 Eclipse 会在您的项目中添加一些重复的 .jar,这些 .jar 通常与 Maven Dependency .jar 相同。

如果您的项目看起来像下面的示例,那么 Maven 依赖项会发生巨大变化,应该手动删除。


例如(项目资源管理器视图)
src/main/java
src/test/java
spring-boot-vaadin.jar
spring-aop.jar
Maven 依赖
  项 spring-boot-vaadin.jar
  spring-aop.jar
等...

...这是治愈:-)


项目/属性/Java 构建路径/库

只需删除所有 REPO_M2/... 路径并更新项目。

于 2015-01-21T09:41:52.313 回答
0


Tomcat有不同的WAR部署方式。有些工作,有些不工作。请尝试以下部署方法:

  • 自动:将 WAR 文件复制粘贴到 ${CATALINA_HOME}/webapps。如果一切顺利,将出现一个同名的文件夹。
  • 管理器应用程序:上传 WAR 文件
  • 管理器应用程序:找到 WAR 文件

就我而言,使用管理器应用程序(本地 URL:http://localhost:8080/manager)有效。而使用复制粘贴进行部署会导致您的错误。

于 2015-11-03T16:58:12.800 回答
0

将战争文件部署到 Tomcat 时出现此错误。我的项目需要 Java 1.8,结果只安装了 Java 1.7。从我能找到的任何日志文件中都不是很明显。

于 2016-11-21T20:18:50.640 回答
0

对我来说,问题是由于将项目从 Git 检入另一个目录引起的。选择与war文件相同的名称解决了这个问题。

于 2018-04-03T20:48:10.563 回答
0

当服务器中没有足够的空间时出现此错误。检查日志和服务器空间

于 2018-07-30T10:42:31.777 回答
0

可能非常微不足道,但值得在浪费一些时间之前检查一下。

就我而言,mysql服务已关闭。

当您有一个包含 JPA / Hibernate 的 Java 应用程序时,它会在启动时检查数据库连接。刚刚通过查看它有实体管理器错误的外观发现。

于 2020-02-02T13:50:41.960 回答
0

这可能是由您的代码中的问题引起的。以我为例,

I had Mongo database pointing to my local(done this for testing and forgot to update it back) instead of the one on EC2 which is the same machine 
        where war file is deployed to. 

我是怎么想出来的?我不得不与运行良好的旧版本代码进行比较。

于 2021-01-18T12:01:48.950 回答
0

由于Tomcat版本不匹配,我也遇到了这个问题!根据文档,Grails 4.0.x的默认 tomcat 版本是tomcat 8,但在我使用的服务器中,tomcat 版本是 9.0.31!

build.gradle文件中,我 编译“org.springframework.boot:spring-boot-starter-tomcat”更改为提供“org.springframework.boot:spring-boot-starter-tomcat”并添加/修改缓存插件进行编译"org.grails.plugins:cache", { exclude group: "org.codehaus.groovy", module: "groovy-all" }依赖 块下!【groovy-all 2.1自带缓存插件】

它就像一个魅力!奇怪的是,当使用命令grails run-app 运行应用程序时,这并没有导致任何问题

于 2021-02-25T14:02:31.350 回答