java - 错误 - 在 tomcat 7.0 (windows) 中部署 war 文件

标签 java war tomcat8

在Tomcat服务器中部署war文件时出现以下错误

我执行了以下步骤,

1) 下载 Apache Tomcat Zip

2)解压到D盘

3) 添加了 JAVA_HOME,JRE_HOME,CATALINA_HOME 环境变量

4)启动Tomcat服务器startup.bat(服务器启动成功)

5)添加了一个war文件,该文件是从eclipse中的maven项目创建的

6) 服务器开始部署war文件

7) 部署后出现以下错误

webapps\IT_Inventory.war
24-Aug-2016 13:06:08.313 SEVERE [localhost-startStop-1] org.apache.catalina.core
.ContainerBase.addChildInternal ContainerBase.addChild: start:
 org.apache.catalina.LifecycleException: Failed to start component [StandardEngi
ne[Catalina].StandardHost[localhost].StandardContext[/IT_Inventory]]
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:158)
        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase
.java:724)
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:70
0)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734)

        at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:952)

        at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:
1823)
        at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
        at java.util.concurrent.FutureTask.run(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.NoClassDefFoundError: Lorg/apache/commons/logging/Log;
        at java.lang.Class.getDeclaredFields0(Native Method)
        at java.lang.Class.privateGetDeclaredFields(Unknown Source)
        at java.lang.Class.getDeclaredFields(Unknown Source)
        at org.apache.catalina.util.Introspection.getDeclaredFields(Introspectio
n.java:110)
        at org.apache.catalina.startup.WebAnnotationSet.loadFieldsAnnotation(Web
AnnotationSet.java:262)
        at org.apache.catalina.startup.WebAnnotationSet.loadApplicationServletAn
notations(WebAnnotationSet.java:136)
        at org.apache.catalina.startup.WebAnnotationSet.loadApplicationAnnotatio
ns(WebAnnotationSet.java:66)
        at org.apache.catalina.startup.ContextConfig.applicationAnnotationsConfi
g(ContextConfig.java:327)
        at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfi
g.java:774)
        at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfi
g.java:298)
        at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBa
se.java:94)
        at org.apache.catalina.core.StandardContext.startInternal(StandardContex
t.java:5076)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:152)
        ... 10 more
Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.Log
        at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClas
sLoaderBase.java:1284)
        at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClas
sLoaderBase.java:1118)
        ... 23 more

24-Aug-2016 13:06:08.320 SEVERE [localhost-startStop-1] org.apache.catalina.star
tup.HostConfig.deployWAR Error deploying web application archive D:\apache-tomca
t-8.5.4\webapps\IT_Inventory.war
 java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.cata
lina.LifecycleException: Failed to start component [StandardEngine[Catalina].Sta
ndardHost[localhost].StandardContext[/IT_Inventory]]
        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase
.java:728)
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:70
0)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734)

        at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:952)

        at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:
1823)
        at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
        at java.util.concurrent.FutureTask.run(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)

24-Aug-2016 13:06:08.325 INFO [localhost-startStop-1] org.apache.catalina.startu
p.HostConfig.deployWAR Deployment of web application archive D:\apache-tomcat-8.
5.4\webapps\IT_Inventory.war has finished in 2,017 ms

尝试从 Eclipse 运行此命令 - 添加服务器选项(创建相同的错误集)

最佳答案

堆栈跟踪中的错误似乎指向未找到的类(由:java.lang.NoClassDefFoundError:Lorg/apache/commons/logging/Log;)引起。这让我猜测应用程序中的某个地方缺少依赖项。您可以尝试下载 commons-logging 并将它们作为打包的一部分包含在您的 war 文件中,或者将 jar 包含在 tomcat 中以查看错误是否消失。您还可以查看此问题上类似错误的答案。 Tomcat doesn't start on eclipse

关于java - 错误 - 在 tomcat 7.0 (windows) 中部署 war 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39117698/

相关文章:

linux - 在 Tomcat 8 中将 HTTPS 设置为默认值

java - 编译错误: org. eclipse.jdt.internal.compiler.classfmt.ClassFormatException

java - 未知的并发修改异常java使用Iterator和Vector

java - 如何构建创建 .exe 而不是 .jar 的 msi 安装程序?

java - 通过 Java 获取设备 ID?

java - 使用 Spring MVC 在 jar 文件中显示 jsp 页面

tomcat - War 安装失败,因为未设置 Image Magic Home 环境变量(尽管我另有声明)

java - 为什么整数类缓存值在 -128 到 127 范围内?

java - 服务器机器中的不安全 WAR

tomcat8 - 静默安装 Apache Tomcat