java无法部署tomcat_关于Java:Tomcat无法部署.war

我正在尝试按照本教程创建简单的REST Web服务,但是我将其部署在tomcat上并抛出异常:

FAIL - Application at context path /restful could not be started

FAIL - Encountered exception org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/restful]]

我四处寻找解决方案,发现了这个问题以及这个问题,他们让我认为这是一个Servlet映射问题,但是我不确定如何解决!

这是我的日志文件:

18/12/2012 9:57:16 AM org.apache.catalina.startup.HostConfig deployWAR

SEVERE: Error deploying web application archive /opt/tomcat7/webapps/restful.war

java.lang.IllegalStateException: ContainerBase.addChild: start:

org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/restful]]

at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:904)

at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)

at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633)

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

at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1655)

at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)

at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)

at java.util.concurrent.FutureTask.run(FutureTask.java:138)

at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)

at java.lang.Thread.run(Thread.java:619)

这是我的web.xml文件:

xmlns="http://java.sun.com/xml/ns/javaee" version="3.0"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://java.sun.com/xml/ns/javaee

http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">

RestfulContainer

com.sun.jersey.spi.container.servlet.ServletContainer

com.sun.jersey.config.property.packages

com.mcnz.ws

1

RestfulContainer

/resources/*

并且冒着给您太多信息的危险,这是我的文件夹结构的ls:

.:

WEB-INF

./WEB-INF:

classes

lib

web.xml

./WEB-INF/classes:

com

./WEB-INF/classes/com:

mcnz

./WEB-INF/classes/com/mcnz:

ws

./WEB-INF/classes/com/mcnz/ws:

HelloWorldResource.class

HelloWorldResource.java

./WEB-INF/lib:

asm-3.1.jar

jackson-core-asl-1.9.2.jar

jackson-jaxrs-1.9.2.jar

jackson-mapper-asl-1.9.2.jar

jackson-xc-1.9.2.jar

jersey-client-1.16.jar

jersey-core-1.16.jar

jersey-json-1.16.jar

jersey-server-1.16.jar

jettison-1.1.jar

jsr311-api-1.1.1.jar

这是一个类似的帖子-stackoverflow.com/questions/8512588/

是的,我知道我在问题"Ive looked around for a solution and found this question".中发布时,我只是不确定这是否是a)servlet问题和b)解决该问题我需要做什么

抱歉,没有遵循您发布的链接。 无论如何,这听起来很像web.xml中的问题。 如果您是我,请尝试以下操作...从web.xml中删除servlet和servlet映射元素。 重新部署,看看是否出现相同的错误。 如果没有,那么您对根本原因有一个更好的了解。 您可能还需要验证WEB-INF / lib文件夹中的jar文件之一(从jersey-server-1.16.jar开始)中是否存在com / sun / jersey / spi / container / servlet / ServletContainer.class。

我遍历每个罐子,寻找comsunjerseyspicontainerservletServletContainer.class,在任何地方都找不到。 因此,我找到了jar文件jersey-servlet.jar,并将其添加到我的lib中,并且所有文件现在都可以使用。 谢谢堆!

如上面的注释所示,问题出在应用程序web.xml引用了servlet定义中的java类。 通过确保应用程序实际包含该类来解决此问题。 找到了丢失的jar文件,并将其放在WEB-INF / lib目录中。

我遇到了使ncwms在Apache Tomcat / 8.5.38上运行的类似问题

显然,我现在需要添加一些额外的Java库,这些库已在最新的Java版本中删除。

(请参见此处的详细信息:如何解决java.lang.NoClassDefFoundError:Java 9中的javax / xml / bind / JAXBException)

更改在此文件中:

/opt/tomcat/bin/catalina.sh

JAVA_OPTS="$JAVA_OPTS $JSSE_OPTS --add-modules java.xml.bind"

但是,对于ncwms而言,这还远远不够。 后来在导入数据集时遇到了问题,因此我恢复为使用其他版本的Java:

java -version

openjdk version"1.8.0_191"

OpenJDK Runtime Environment (build 1.8.0_191-8u191-b12-2ubuntu0.18.04.1-b12)

OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值