Tomcat:部署时出现LifecycleException

时间:2011-12-14 22:25:09

标签: tomcat lifecycleexception

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

我按照Google API网站上的说明deploy their example 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)。

17 个答案:

答案 0 :(得分:46)

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

日志中始终有相关信息 - 请查看logs/catalina.out并找出问题所在。

答案 1 :(得分:5)

我有这个问题,它不会在Tomcat上部署,然后我从我的所有servlet代码中删除了所有@webServlet Annotations,并且它已成功部署。

答案 2 :(得分:4)

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

答案 3 :(得分:3)

检查您的WEB-INF / web.xml文件以获取servlet Mapping。

答案 4 :(得分:1)

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

答案 5 :(得分:0)

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

build.gradle 文件中我更改 编译“org.springframework.boot:spring-boot-starter-tomcat”到< em>提供“org.springframework.boot:spring-boot-starter-tomcat”并添加/修改缓存插件编译“org.grails.plugins:cache” , { exclude group: "org.codehaus.groovy", module: "groovy-all" } dependencies 块下! [groovy-all 2.1自带缓存插件]

它就像一个魅力!奇怪的是,当使用命令 grails run-app

运行应用程序时,这并没有导致任何问题

答案 6 :(得分: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. 

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

答案 7 :(得分:0)

可能非常琐碎,但值得花点时间检查一下。

在我看来,mysql服务已关闭。

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

答案 8 :(得分:0)

我在部署时遇到此错误

[main] org.apache.catalina.startup.HostConfig.deployDirectory Error deploying web application directory [/opt/tomcat/apache-tomcat-9.0.30/webapps/iclock]
    java.lang.IllegalStateException: Error starting child
            at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:720)
            at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:690)
            at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:705)
            at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1133)
            at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1867)
            at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
            at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
            at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)

答案 9 :(得分:0)

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

答案 10 :(得分:0)

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

答案 11 :(得分:0)

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

答案 12 :(得分:0)


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

  • 自动:将WAR文件复制粘贴到$ {CATALINA_HOME} / webapps中。如果一切正常,将出现具有相同名称的文件夹。
  • 经理申请:上传WAR文件
  • Manager应用程序:找到WAR文件

在我的情况下,使用管理器应用程序(本地URL:http://localhost:8080/manager)工作。而使用复制粘贴进行部署会导致您的错误。

答案 13 :(得分:0)

还有一些变化,Eclipse Project在某种程度上已被破坏。通常情况下,Eclipse会在项目中添加一些重复的.jars,而这些.jars通常与Maven Dependency .jars相同。

如果您的项目如下图所示,Maven依赖项重复发生巨大变化,应手动删除。


例如(Project Explorer View)
的src /主/ JAVA
的src /测试/ JAVA
弹簧引导vaadin.jar
弹簧aop.jar
Maven依赖性
弹簧引导vaadin.jar
弹簧aop.jar
等...

......这是治愈方法: - )


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

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

答案 14 :(得分:0)

当遇到这样的现象时,我出现了内存错误:

Caused by: java.lang.OutOfMemoryError: PermGen space
释放一些内存后,问题就解决了。

答案 15 :(得分:0)

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

答案 16 :(得分:0)

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