【问题标题】:Tomcat: LifecycleException when deployingTomcat:部署时的 LifecycleException
【发布时间】:2011-12-14 22:25:09
【问题描述】:

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

我按照 Google API 网站上的说明发送至 deploy their example webapp。它基本上由位于WEB-INF/lib 目录中的jar 文件和位于WEB-INF 目录中的web.xml 文件组成。

但应用程序并未自动部署,当尝试强制服务器通过管理器 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)。

【问题讨论】:

  • FAIL消息前应该有异常
  • 这就是我从 Tomcat Web 应用程序管理器 GUI 获得的全部内容。如果有一个特定的命令行,我可以在终端中输入更多信息,我很乐意这样做! :)
  • 感谢您的建议!实际上,在一个不存在的 servlet 上有一个 servlet 映射。我没有检查谷歌给出的 web.xml 文件并认为它是正确的,但由于某种原因它不是!再次感谢,一旦映射被评论,它就可以工作。
  • (添加我的评论的扩展版本作为答案)

标签: tomcat lifecycleexception


【解决方案1】:

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

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

【讨论】:

  • 感谢您的回答!阅读日志显示servlet 上有一个不存在的servlet-mapping。我没有检查谷歌给出的 web.xml 文件并认为它是正确的,但由于某种原因它不是!再次感谢,一旦映射被评论,它就可以工作。
  • 我收到了这个异常,但 catalina.out 中没有出现任何内容
  • 我和@BartvanHeukelom 有同样的问题。我不知道该怎么办。
  • 打开 logs/cataline.out 时,显示以下错误:错误:无法找到或加载主类 org.apache.catalina.startup。引导
  • 这对于独立的 Tomcat 来说很好。遇到similar-looking problem in embedded Tomcat?怎么办
【解决方案2】:

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

【讨论】:

  • 也适合我。前提是您还删除了此处描述的初始化代码:stackoverflow.com/questions/26089902 除了没有 WebServlet。无论如何,Plus1 是最相关的答案。
  • 虽然这可行,但我依靠 WebServlet 注释进行路由。有什么解决办法?
【解决方案3】:

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

【讨论】:

  • 这是一种特殊情况,但通常问题是 web-inf lib 文件夹中缺少特定的 jar
【解决方案4】:

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

【讨论】:

    【解决方案5】:

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

    【讨论】:

      【解决方案6】:

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

      【讨论】:

        【解决方案7】:

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

        【讨论】:

          【解决方案8】:

          遇到这种现象时出现内存不足错误:

          Caused by: java.lang.OutOfMemoryError: PermGen space
          

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

          【讨论】:

            【解决方案9】:

            还有一些变化是 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
            等等……

            ...这是治愈 :-)


            Project/Properties/Java Build Path/Libraries

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

            【讨论】:

              【解决方案10】:


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

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

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

              【讨论】:

                【解决方案11】:

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

                【讨论】:

                  【解决方案12】:

                  当服务器空间不足时,我收到此错误。检查日志和服务器空间

                  【讨论】:

                    【解决方案13】:

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

                    【讨论】:

                      【解决方案14】:

                      可能非常琐碎,但值得在浪费时间之前检查一下。

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

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

                      【讨论】:

                        【解决方案15】:

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

                        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. 
                        

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

                        【讨论】:

                          【解决方案16】:

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

                          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" }dependencies 块下! [groovy-all 2.1自带缓存插件]

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

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

                          【讨论】:

                            【解决方案17】:

                            我使用 XAMPP,我只将 Tomcat 版本升级到 Tomcat8 版本

                            我在 xampp 上停止了 tomcat 服务并将旧的 Tomcat 文件夹重命名为“tomcat_old”

                            c:\xampp\tomcat_old
                            

                            (如果您在重命名时遇到问题,请使用免费工具 LockHunter 来解锁文件)

                            所以我下载了 tomcat8 并将项目文件(包含文件夹 bin、conf 等)复制到我的 tomcat 文件夹中;

                            c:\xampp\tomcat 
                            

                            然后我检查

                            C:\xampp\xampp-control.ini
                            

                            将此文件更改如下:

                            [BinaryNames]
                            Apache=httpd.exe
                            MySQL=mysqld.exe
                            FileZilla=filezillaserver.exe
                            FileZillaAdmin=filezilla server interface.exe
                            Mercury=mercury.exe
                            Tomcat=tomcat7.exe <--- I changed this to: Tomcat=tomcat8.exe after upgrading tomcat
                            
                            [ServiceNames]
                            Apache=Apache2.4
                            MySQL=mysql
                            FileZilla=FileZillaServer
                            Tomcat=Tomcat7 <--- I changed this to: Tomcat=Tomcat8
                            

                            保存文件并将旧tomcat用户从旧tomcat conf文件夹中的tomcat-users.xml恢复到新的conf文件夹中

                            重启 Tomcat 就可以了

                            【讨论】:

                              猜你喜欢
                              • 1970-01-01
                              • 1970-01-01
                              • 1970-01-01
                              • 2019-05-02
                              • 2016-07-23
                              • 1970-01-01
                              • 1970-01-01
                              • 1970-01-01
                              • 1970-01-01
                              相关资源
                              最近更新 更多