2015-04-16 99 views
-1

嘗試通過右鍵單擊它並選擇「RUN AS」然後選擇「RUN ON SERVER」運行項目時,Tomcat出現錯誤。SEVERE:子容器在啓動過程中失敗(Tomcat啓動時出錯)

如果我嘗試點擊直接url「http://localhost:8080/HelloWorldStruts2/index.action」 它給我404錯誤。

我想用strcat2和Tomcat版本v7.0來做到這一點。

Plz找到包含所有xml,jsp和java類的源代碼。

Tomcat的錯誤控制檯:

![SEVERE: A child container failed during start 
java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component \[StandardEngine\[Catalina\].StandardHost\[localhost\].StandardContext\[/HelloWorldStruts2\]\] 
    at java.util.concurrent.FutureTask.report(Unknown Source) 
    at java.util.concurrent.FutureTask.get(Unknown Source) 
    at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1123) 
    at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:799) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559) 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549) 
    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: org.apache.catalina.LifecycleException: Failed to start component \[StandardEngine\[Catalina\].StandardHost\[localhost\].StandardContext\[/HelloWorldStruts2\]\] 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154) 
    ... 6 more 
Caused by: java.lang.NoClassDefFoundError: Lcom/opensymphony/xwork2/util/logging/Logger; 
    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(Introspection.java:106) 
    at org.apache.catalina.startup.WebAnnotationSet.loadFieldsAnnotation(WebAnnotationSet.java:261) 
    at org.apache.catalina.startup.WebAnnotationSet.loadApplicationFilterAnnotations(WebAnnotationSet.java:110) 
    at org.apache.catalina.startup.WebAnnotationSet.loadApplicationAnnotations(WebAnnotationSet.java:64) 
    at org.apache.catalina.startup.ContextConfig.applicationAnnotationsConfig(ContextConfig.java:400) 
    at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:876) 
    at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:371) 
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117) 
    at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90) 
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5355) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
    ... 6 more 
Caused by: java.lang.ClassNotFoundException: com.opensymphony.xwork2.util.logging.Logger 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1720) 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571) 
    ... 20 more 

Apr 16, 2015 3:55:38 PM org.apache.catalina.core.ContainerBase startInternal 
SEVERE: A child container failed during start 
java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component \[StandardEngine\[Catalina\].StandardHost\[localhost\]\] 
    at java.util.concurrent.FutureTask.report(Unknown Source) 
    at java.util.concurrent.FutureTask.get(Unknown Source) 
    at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1123) 
    at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:300) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
    at org.apache.catalina.core.StandardService.startInternal(StandardService.java:443) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
    at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:731) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
    at org.apache.catalina.startup.Catalina.start(Catalina.java:689) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:321) 
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:455) 
Caused by: org.apache.catalina.LifecycleException: Failed to start component \[StandardEngine\[Catalina\].StandardHost\[localhost\]\] 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154) 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559) 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549) 
    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: org.apache.catalina.LifecycleException: A child container failed during start 
    at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1131) 
    at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:799) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
    ... 6 more 

Apr 16, 2015 3:55:38 PM org.apache.catalina.startup.Catalina start 
SEVERE: The required Server component failed to start so Tomcat is unable to start. 
org.apache.catalina.LifecycleException: Failed to start component \[StandardServer\[8005\]\] 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154) 
    at org.apache.catalina.startup.Catalina.start(Catalina.java:689) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:321) 
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:455) 
Caused by: org.apache.catalina.LifecycleException: Failed to start component \[StandardService\[Catalina\]\] 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154) 
    at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:731) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
    ... 7 more 
Caused by: org.apache.catalina.LifecycleException: Failed to start component \[StandardEngine\[Catalina\]\] 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154) 
    at org.apache.catalina.core.StandardService.startInternal(StandardService.java:443) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
    ... 9 more 
Caused by: org.apache.catalina.LifecycleException: A child container failed during start 
    at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1131) 
    at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:300) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
    ... 11 more][1] 

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" 
    xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
    http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" 
    id="WebApp_ID" version="3.0"> 

    <display-name>Struts 2</display-name> 
    <welcome-file-list> 
     <welcome-file>Index.jsp</welcome-file> 
    </welcome-file-list> 
    <filter> 
     <filter-name>struts2</filter-name> 
     <filter-class> 
     org.apache.struts2.dispatcher.FilterDispatcher 
     </filter-class> 
    </filter> 

    <filter-mapping> 
     <filter-name>struts2</filter-name> 
     <url-pattern>/*</url-pattern> 
    </filter-mapping> 
</web-app> 

struts.xml中:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE struts PUBLIC 
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" 
    "http://struts.apache.org/dtds/struts-2.0.dtd"> 
<struts> 
<constant name="struts.devMode" value="true" /> 
    <package name="helloworld" extends="struts-default"> 
    <action name="index"> 
      <result >/Index.jsp</result> 
     </action> 
     <action name="hello" 
      class="com.tutorialspoint.struts2.HelloWorldAction" 
      method="execute"> 
      <result name="success">/HelloWorld.jsp</result> 
     </action> 
    </package> 
</struts> 

的helloWorld.jsp:

<%@ page contentType="text/html; charset=UTF-8" %> 
<%@ taglib prefix="s" uri="/struts-tags" %> 
<html> 
    <head> 
    <title>Hello World</title> 
    </head> 
    <body> 
    Hello World, <s:property value="name"/> 
    </body> 
</html> 

的index.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" 
    pageEncoding="ISO-8859-1"%> 
<%@ taglib prefix="s" uri="/struts-tags"%> 
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<title>Hello World</title> 
</head> 
<body> 
    <h1>Hello World From Struts2</h1> 
    <form action="hello"> 
     <label for="name">Please enter your name</label><br/> 
     <input type="text" name="name"/> 
     <input type="submit" value="Say Hello"/> 
    </form> 
</body> 
</html> 

HelloWorldAction.java:

package struts2; 

public class HelloWorldAction{ 
     private String name; 

     public String execute() throws Exception { 
      return "success"; 
     } 

     public String getName() { 
      return name; 
     } 

     public void setName(String name) { 
      this.name = name; 
     } 
    } 


i tried changing the version of the jar and tomcat.But it didn't work.No idea what to do. 
Thanks in advance                       
+0

您尚未部署所需的罐子。 –

+0

也使用適當的過濾器,那不是FilterDispatcher –

+0

如何ro部署罐子? @aleksandr m –

回答

1

的FilterDispatcher(org.apache.struts2.dispatcher。 FilterDispatcher)在早期的Struts2開發中使用,它是d自從Struts 2.1.3以來不贊同。

如果您使用Struts版本> = 2.1.3,則始終建議升級新的過濾器類 - StrutsPrepareAndExecuteFilter(org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter)。

你似乎已經採取了這種代碼:http://www.tutorialspoint.com/struts_2/struts_examples.htm

如果他們使用的支柱支柱-2.2.3罐子,說使用FilterDispatcher,這聽起來是錯誤的。

更好使用下面的鏈接: http://examples.javacodegeeks.com/enterprise-java/struts-2/struts-2-helloworld-example/

在被包括在罐子:

公地文件上傳-1.3.1.jar 公地-IO-2.2.jar 公地琅-2.4的.jar 公地lang3-3.2.jar 共享記錄-1.1.3.jar 共享記錄-API-1.1.jar freemarker的-2.3.19.jar 了Javassist-3.11.0.GA.jar OGNL -3.0.6.jar struts2-core-2.3。 20.jar xwork-core-2.3.20.jar

從這個鏈接和他們使用的過濾器都是正確的。

相關問題