我一直在处理计算机上的代码,并在其他计算机上导入该代码。但是当我部署代码并在另一台机器上运行代码时,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>
控制台日志:
2017年1月11日上午1:33:12 org.apache.tomcat.util.digester.SetPropertiesRule开始警告: [SetPropertiesRule] {服务器/服务/引擎/主机/上下文}设置 财产来源&#39; to&#39; org.eclipse.jst.jee.server:试试&#39;没找到 匹配属性。 2017年1月11日上午1:33:12 org.apache.catalina.startup.VersionLoggerListener log INFO:Server 版本:Apache Tomcat / 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 [卡塔利娜] .StandardHost [本地主机] .StandardContext [/尝试]] 在 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 at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1333) 在 org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1167)
我在Stack Exchange上尝试过针对同一问题的其他解决方案。但没有什么对我有用。
答案 0 :(得分:0)
似乎导致类com.sun.faces.config.ConfigureListener
存在于您的计算机中但不存在于目标计算机中。此类通常属于jsf-impl.jar
或jsf-ri.jar
库。
由于您在两台计算机上部署相同的战争(我假设),因此这些库显然不会参与战争,因此它们可能会进入您计算机的Tomcat运行时:在目录<tomcat>/lib
中查找它将其复制到目标机器的Tomcat lib目录中。
答案 1 :(得分:0)
我已经在server.xml文件中解决了此问题。我们在server.xml文件上定义了<Context docBase="path" path="/" reloadable="true"/>
的位置,所以我只是在tomcat解压战争时将其删除。
在路径上,您的项目内容将在那里,如web.xml文件,类和lib(jars)等。