Java Tomcat 8抛出错误:';子容器在启动期间失败';

Java Tomcat 8抛出错误:';子容器在启动期间失败';,java,eclipse,tomcat,jakarta-ee,buildpath,Java,Eclipse,Tomcat,Jakarta Ee,Buildpath,我一直在我的计算机上处理一个代码,并将该代码导入到另一台机器上。但当我部署代码并在另一台机器上运行时,tomcat无法正确启动并抛出错误 web.xml文件: <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocatio

我一直在我的计算机上处理一个代码,并将该代码导入到另一台机器上。但当我部署代码并在另一台机器上运行时,tomcat无法正确启动并抛出错误

web.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
  <display-name>Try</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  <servlet>
    <description>Apache CXF Endpoint</description>
    <display-name>cxf</display-name>
    <servlet-name>cxf</servlet-name>
    <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>cxf</servlet-name>
    <url-pattern>/services/ *</url-pattern>
  </servlet-mapping>
  <session-config>
    <session-timeout>60</session-timeout>
  </session-config>
  <servlet>
    <description>JAX-RS Tools Generated - Do not modify</description>
    <servlet-name>JAX-RS Servlet</servlet-name>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>JAX-RS Servlet</servlet-name>
    <url-pattern>/jaxrs/*</url-pattern>
  </servlet-mapping>
</web-app>

尝试
index.html
index.htm
index.jsp
default.html
default.htm
default.jsp
ApacheCXF端点
cxf
cxf
org.apache.cxf.transport.servlet.CXFServlet
1.
cxf
/服务/*
60
生成JAX-RS工具-不修改
JAX-RSservlet
1.
JAX-RSservlet
/jaxrs/*
控制台日志:

2017年1月11日凌晨1:33:12 org.apache.tomcat.util.digester.SetPropertiesRule开始警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context}设置 “org.eclipse.jst.jee.server:Try”的属性“source”未找到 匹配属性。2017年1月11日凌晨1:33:12 org.apache.catalina.startup.VersionLoggerListener日志信息:服务器 版本:ApacheTomcat/8.0.39

严重:启动期间子容器失败 java.util.concurrent.ExecutionException:org.apache.catalina.LifecycleException:未能启动组件[StandardEngine[catalina].StandardHost[localhost].StandardContext[/Try]] 位于java.util.concurrent.FutureTask.report(FutureTask.java:122)的Blockquote

原因:org.apache.catalina.LifecycleException:启动失败 成分 [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/Try]] 在 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:162) ... 6其他原因:java.lang.IllegalArgumentException:无法 创建[com.sun.faces.config.ConfigureListener]类型的实例 位于org.apache.catalina.core.ApplicationContext.addListener

原因:java.lang.ClassNotFoundException: com.sun.faces.config.ConfigureListener位于 org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1333) 在 org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1167)


对于堆栈交换上的相同问题,我尝试了其他解决方案。但是对我来说什么都不起作用。

似乎导致此问题的类
com.sun.faces.config.ConfigureListener
存在于您的计算机中,但不存在于目标计算机中。此类通常属于
jsf impl.jar
jsf ri.jar


由于您在两台机器上都部署了相同的war(我假设),库显然不参与战争,因此,它们很可能会进入您计算机的Tomcat运行时:在目录
/lib
中查找它,并将其复制到目标计算机的Tomcat lib目录中。

似乎导致类
com.sun.faces.config.ConfigureListener
存在于您的计算机中,但不在目标计算机中。此类通常属于
jsf impl.jar
jsf ri.jar


由于您在两台机器上部署了相同的war(我假设),库显然不在war中,因此它们很可能在您的计算机的Tomcat运行时中:在目录
/lib
中查找它,并将其复制到目标机器的Tomcat lib目录中。

我已经在server.xml文件中修复了这个问题。我们在server.xml文件中定义了
,所以我只是在tomcat解包war时删除了它


路径上您的项目内容将出现在那里,如web.xml文件、类和lib(jar)等。

我已经在server.xml文件上解决了这个问题。我们在server.xml文件中定义了
,所以我只是在tomcat解包war时删除了它


path上,您的项目内容将出现在那里,如web.xml文件、类和库(jars)等。

可能重复@Berger:我没有使用jsf,并且“mojara”不在我的web.xml中。
com.sun.faces.config.ConfigureListener
是一个jsf类,在您的服务器上使用它。以前使用过相同的代码。在源代码中找不到对com.sun.faces.config.ConfigureListener的任何引用。请继续查看上述主题,下载JAR并将其放在接受答案所示的位置。可能有一台服务器的libs中有这个,而另一台没有。可能是@Berger的重复:我没有使用jsf,“Mojarra”不在我的web.xml中。
com.sun.faces.config.ConfigureListener
是一个jsf类,有人在您的服务器上使用它。以前使用过相同的代码。在源代码中找不到对com.sun.faces.config.ConfigureListener的任何引用。请继续查看上述主题,下载JAR并将其放在接受答案所示的位置。也许一台服务器的libs中有这个,而另一台没有。