struts2无法运行404

时间:2016-04-11 00:57:13

标签: jsp struts2 http-status-code-404

我正在尝试运行一个简单的hello世界,并且我一直收到错误。 我创建了所有web.xml struts.xml。

这是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>jkl</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.ng.filter.StrutsPrepareAndExecuteFilter</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="go" 
            class="tebitebi.Cls"
            method="execute">
            <result name="success">/go.jsp</result>
         </action>
    </package>
</struts>

并在index.jsp中我有一个动作“go”和Cls.java我只创建了一个返回“success”的公共字符串execute,但每次运行该项目时,我都得到了404.

这是控制台输出:

avr. 11, 2016 1:53:37 AM org.apache.tomcat.util.digester.SetPropertiesRule begin
AVERTISSEMENT: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:frsr' did not find a matching property.
avr. 11, 2016 1:53:37 AM org.apache.tomcat.util.digester.SetPropertiesRule begin
AVERTISSEMENT: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:Arme' did not find a matching property.
avr. 11, 2016 1:53:37 AM org.apache.tomcat.util.digester.SetPropertiesRule begin
AVERTISSEMENT: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:jkl' did not find a matching property.
avr. 11, 2016 1:53:37 AM org.apache.catalina.startup.VersionLoggerListener log
INFOS: Server version:        Apache Tomcat/7.0.68
avr. 11, 2016 1:53:37 AM org.apache.catalina.startup.VersionLoggerListener log
INFOS: Server built:          Feb 8 2016 20:25:54 UTC
avr. 11, 2016 1:53:37 AM org.apache.catalina.startup.VersionLoggerListener log
INFOS: Server number:         7.0.68.0
avr. 11, 2016 1:53:37 AM org.apache.catalina.startup.VersionLoggerListener log
INFOS: OS Name:               Windows 8.1
avr. 11, 2016 1:53:37 AM org.apache.catalina.startup.VersionLoggerListener log
INFOS: OS Version:            6.3
avr. 11, 2016 1:53:37 AM org.apache.catalina.startup.VersionLoggerListener log
INFOS: Architecture:          amd64
avr. 11, 2016 1:53:37 AM org.apache.catalina.startup.VersionLoggerListener log
INFOS: Java Home:             C:\Program Files\Java\jre1.8.0_77
avr. 11, 2016 1:53:37 AM org.apache.catalina.startup.VersionLoggerListener log
INFOS: JVM Version:           1.8.0_77-b03
avr. 11, 2016 1:53:37 AM org.apache.catalina.startup.VersionLoggerListener log
INFOS: JVM Vendor:            Oracle Corporation
avr. 11, 2016 1:53:37 AM org.apache.catalina.startup.VersionLoggerListener log
INFOS: CATALINA_BASE:         C:\Users\agles\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0
avr. 11, 2016 1:53:37 AM org.apache.catalina.startup.VersionLoggerListener log
INFOS: CATALINA_HOME:         C:\Users\agles\Desktop\apache-tomcat-7.0.68
avr. 11, 2016 1:53:37 AM org.apache.catalina.startup.VersionLoggerListener log
INFOS: Command line argument: -Dcatalina.base=C:\Users\agles\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0
avr. 11, 2016 1:53:37 AM org.apache.catalina.startup.VersionLoggerListener log
INFOS: Command line argument: -Dcatalina.home=C:\Users\agles\Desktop\apache-tomcat-7.0.68
avr. 11, 2016 1:53:37 AM org.apache.catalina.startup.VersionLoggerListener log
INFOS: Command line argument: -Dwtp.deploy=C:\Users\agles\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps
avr. 11, 2016 1:53:37 AM org.apache.catalina.startup.VersionLoggerListener log
INFOS: Command line argument: -Djava.endorsed.dirs=C:\Users\agles\Desktop\apache-tomcat-7.0.68\endorsed
avr. 11, 2016 1:53:37 AM org.apache.catalina.startup.VersionLoggerListener log
INFOS: Command line argument: -Dfile.encoding=Cp1252
avr. 11, 2016 1:53:37 AM org.apache.catalina.core.AprLifecycleListener lifecycleEvent
INFOS: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files\Java\jre1.8.0_77\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:/Program Files/Java/jre1.8.0_77/bin/server;C:/Program Files/Java/jre1.8.0_77/bin;C:/Program Files/Java/jre1.8.0_77/lib/amd64;C:\Program Files (x86)\iis express\PHP\v5.5;C:\Program Files\PHP\v5.3;C:\ProgramData\Oracle\Java\javapath;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;;;C:\Users\agles\Desktop\eclipse;;.
avr. 11, 2016 1:53:37 AM org.apache.coyote.AbstractProtocol init
INFOS: Initializing ProtocolHandler ["http-bio-8080"]
avr. 11, 2016 1:53:37 AM org.apache.coyote.AbstractProtocol init
INFOS: Initializing ProtocolHandler ["ajp-bio-8009"]
avr. 11, 2016 1:53:38 AM org.apache.catalina.startup.Catalina load
INFOS: Initialization processed in 2022 ms
avr. 11, 2016 1:53:38 AM org.apache.catalina.core.StandardService startInternal
INFOS: Démarrage du service Catalina
avr. 11, 2016 1:53:38 AM org.apache.catalina.core.StandardEngine startInternal
INFOS: Starting Servlet Engine: Apache Tomcat/7.0.68
avr. 11, 2016 1:53:39 AM org.apache.catalina.util.SessionIdGeneratorBase createSecureRandom
INFOS: Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [343] milliseconds.
avr. 11, 2016 1:53:41 AM com.opensymphony.xwork2.config.providers.XmlConfigurationProvider info
INFOS: Parsing configuration file [struts-default.xml]
avr. 11, 2016 1:53:41 AM com.opensymphony.xwork2.config.providers.XmlConfigurationProvider info
INFOS: Unable to locate configuration files of the name struts-plugin.xml, skipping
avr. 11, 2016 1:53:41 AM com.opensymphony.xwork2.config.providers.XmlConfigurationProvider info
INFOS: Parsing configuration file [struts-plugin.xml]
avr. 11, 2016 1:53:41 AM com.opensymphony.xwork2.config.providers.XmlConfigurationProvider info
INFOS: Parsing configuration file [struts.xml]
avr. 11, 2016 1:53:41 AM org.apache.struts2.config.AbstractBeanSelectionProvider info
INFOS: Choosing bean (struts) for (com.opensymphony.xwork2.ObjectFactory)
avr. 11, 2016 1:53:41 AM org.apache.struts2.config.AbstractBeanSelectionProvider info
INFOS: Choosing bean (struts) for (com.opensymphony.xwork2.factory.ActionFactory)
avr. 11, 2016 1:53:41 AM org.apache.struts2.config.AbstractBeanSelectionProvider info
INFOS: Choosing bean (struts) for (com.opensymphony.xwork2.factory.ResultFactory)
avr. 11, 2016 1:53:41 AM org.apache.struts2.config.AbstractBeanSelectionProvider info
INFOS: Choosing bean (struts) for (com.opensymphony.xwork2.factory.ConverterFactory)
avr. 11, 2016 1:53:41 AM org.apache.struts2.config.AbstractBeanSelectionProvider info
INFOS: Choosing bean (struts) for (com.opensymphony.xwork2.factory.InterceptorFactory)
avr. 11, 2016 1:53:41 AM org.apache.struts2.config.AbstractBeanSelectionProvider info
INFOS: Choosing bean (struts) for (com.opensymphony.xwork2.factory.ValidatorFactory)
avr. 11, 2016 1:53:41 AM org.apache.struts2.config.AbstractBeanSelectionProvider info
INFOS: Choosing bean (struts) for (com.opensymphony.xwork2.factory.UnknownHandlerFactory)
avr. 11, 2016 1:53:41 AM org.apache.struts2.config.AbstractBeanSelectionProvider info
INFOS: Choosing bean (struts) for (com.opensymphony.xwork2.FileManagerFactory)
avr. 11, 2016 1:53:41 AM org.apache.struts2.config.AbstractBeanSelectionProvider info
INFOS: Choosing bean (struts) for (com.opensymphony.xwork2.conversion.impl.XWorkConverter)
avr. 11, 2016 1:53:41 AM org.apache.struts2.config.AbstractBeanSelectionProvider info
INFOS: Choosing bean (struts) for (com.opensymphony.xwork2.conversion.impl.CollectionConverter)
avr. 11, 2016 1:53:41 AM org.apache.struts2.config.AbstractBeanSelectionProvider info
INFOS: Choosing bean (struts) for (com.opensymphony.xwork2.conversion.impl.ArrayConverter)
avr. 11, 2016 1:53:41 AM org.apache.struts2.config.AbstractBeanSelectionProvider info
INFOS: Choosing bean (struts) for (com.opensymphony.xwork2.conversion.impl.DateConverter)
avr. 11, 2016 1:53:41 AM org.apache.struts2.config.AbstractBeanSelectionProvider info
INFOS: Choosing bean (struts) for (com.opensymphony.xwork2.conversion.impl.NumberConverter)
avr. 11, 2016 1:53:41 AM org.apache.struts2.config.AbstractBeanSelectionProvider info
INFOS: Choosing bean (struts) for (com.opensymphony.xwork2.conversion.impl.StringConverter)
avr. 11, 2016 1:53:41 AM org.apache.struts2.config.AbstractBeanSelectionProvider info
INFOS: Choosing bean (struts) for (com.opensymphony.xwork2.conversion.ConversionPropertiesProcessor)
avr. 11, 2016 1:53:41 AM org.apache.struts2.config.AbstractBeanSelectionProvider info
INFOS: Choosing bean (struts) for (com.opensymphony.xwork2.conversion.ConversionFileProcessor)
avr. 11, 2016 1:53:41 AM org.apache.struts2.config.AbstractBeanSelectionProvider info
INFOS: Choosing bean (struts) for (com.opensymphony.xwork2.conversion.ConversionAnnotationProcessor)
avr. 11, 2016 1:53:41 AM org.apache.struts2.config.AbstractBeanSelectionProvider info
INFOS: Choosing bean (struts) for (com.opensymphony.xwork2.conversion.TypeConverterCreator)
avr. 11, 2016 1:53:41 AM org.apache.struts2.config.AbstractBeanSelectionProvider info
INFOS: Choosing bean (struts) for (com.opensymphony.xwork2.conversion.TypeConverterHolder)
avr. 11, 2016 1:53:41 AM org.apache.struts2.config.AbstractBeanSelectionProvider info
INFOS: Choosing bean (struts) for (com.opensymphony.xwork2.TextProvider)
avr. 11, 2016 1:53:41 AM org.apache.struts2.config.AbstractBeanSelectionProvider info
INFOS: Choosing bean (struts) for (com.opensymphony.xwork2.LocaleProvider)
avr. 11, 2016 1:53:41 AM org.apache.struts2.config.AbstractBeanSelectionProvider info
INFOS: Choosing bean (struts) for (com.opensymphony.xwork2.ActionProxyFactory)
avr. 11, 2016 1:53:41 AM org.apache.struts2.config.AbstractBeanSelectionProvider info
INFOS: Choosing bean (struts) for (com.opensymphony.xwork2.conversion.ObjectTypeDeterminer)
avr. 11, 2016 1:53:41 AM org.apache.struts2.config.AbstractBeanSelectionProvider info
INFOS: Choosing bean (struts) for (org.apache.struts2.dispatcher.mapper.ActionMapper)
avr. 11, 2016 1:53:41 AM org.apache.struts2.config.AbstractBeanSelectionProvider info
INFOS: Choosing bean (jakarta) for (org.apache.struts2.dispatcher.multipart.MultiPartRequest)
avr. 11, 2016 1:53:41 AM org.apache.struts2.config.AbstractBeanSelectionProvider info
INFOS: Choosing bean (struts) for (org.apache.struts2.views.freemarker.FreemarkerManager)
avr. 11, 2016 1:53:41 AM org.apache.struts2.config.AbstractBeanSelectionProvider info
INFOS: Choosing bean (struts) for (org.apache.struts2.components.UrlRenderer)
avr. 11, 2016 1:53:41 AM org.apache.struts2.config.AbstractBeanSelectionProvider info
INFOS: Choosing bean (struts) for (com.opensymphony.xwork2.validator.ActionValidatorManager)
avr. 11, 2016 1:53:41 AM org.apache.struts2.config.AbstractBeanSelectionProvider info
INFOS: Choosing bean (struts) for (com.opensymphony.xwork2.util.ValueStackFactory)
avr. 11, 2016 1:53:41 AM org.apache.struts2.config.AbstractBeanSelectionProvider info
INFOS: Choosing bean (struts) for (com.opensymphony.xwork2.util.reflection.ReflectionProvider)
avr. 11, 2016 1:53:41 AM org.apache.struts2.config.AbstractBeanSelectionProvider info
INFOS: Choosing bean (struts) for (com.opensymphony.xwork2.util.reflection.ReflectionContextFactory)
avr. 11, 2016 1:53:41 AM org.apache.struts2.config.AbstractBeanSelectionProvider info
INFOS: Choosing bean (struts) for (com.opensymphony.xwork2.util.PatternMatcher)
avr. 11, 2016 1:53:41 AM org.apache.struts2.config.AbstractBeanSelectionProvider info
INFOS: Choosing bean (struts) for (org.apache.struts2.util.ContentTypeMatcher)
avr. 11, 2016 1:53:41 AM org.apache.struts2.config.AbstractBeanSelectionProvider info
INFOS: Choosing bean (struts) for (org.apache.struts2.dispatcher.StaticContentLoader)
avr. 11, 2016 1:53:41 AM org.apache.struts2.config.AbstractBeanSelectionProvider info
INFOS: Choosing bean (struts) for (com.opensymphony.xwork2.UnknownHandlerManager)
avr. 11, 2016 1:53:41 AM org.apache.struts2.config.AbstractBeanSelectionProvider info
INFOS: Choosing bean (struts) for (org.apache.struts2.views.util.UrlHelper)
avr. 11, 2016 1:53:41 AM org.apache.struts2.config.AbstractBeanSelectionProvider info
INFOS: Choosing bean (struts) for (com.opensymphony.xwork2.util.TextParser)
avr. 11, 2016 1:53:41 AM org.apache.struts2.config.AbstractBeanSelectionProvider info
INFOS: Choosing bean (struts) for (org.apache.struts2.dispatcher.DispatcherErrorHandler)
avr. 11, 2016 1:53:41 AM org.apache.struts2.config.AbstractBeanSelectionProvider info
INFOS: Choosing bean (struts) for (com.opensymphony.xwork2.security.ExcludedPatternsChecker)
avr. 11, 2016 1:53:41 AM org.apache.struts2.config.AbstractBeanSelectionProvider info
INFOS: Choosing bean (struts) for (com.opensymphony.xwork2.security.AcceptedPatternsChecker)
avr. 11, 2016 1:53:42 AM org.apache.struts2.dispatcher.Dispatcher error
GRAVE: Dispatcher initialization failed
Unable to load configuration. - action - file:/C:/Users/agles/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/jkl/WEB-INF/classes/struts.xml:10:30
    at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:70)
    at org.apache.struts2.dispatcher.Dispatcher.getContainer(Dispatcher.java:970)
    at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:438)
    at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:482)
    at org.apache.struts2.dispatcher.ng.InitOperations.initDispatcher(InitOperations.java:74)
    at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFilter.java:57)
    at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:279)
    at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:260)
    at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:105)
    at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4908)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5602)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1572)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1562)
    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: Action class [tebitebi.Cls] not found - action - file:/C:/Users/agles/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/jkl/WEB-INF/classes/struts.xml:10:30
    at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.verifyAction(XmlConfigurationProvider.java:486)
    at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addAction(XmlConfigurationProvider.java:429)
    at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addPackage(XmlConfigurationProvider.java:556)
    at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadPackages(XmlConfigurationProvider.java:295)
    at org.apache.struts2.config.StrutsXmlConfigurationProvider.loadPackages(StrutsXmlConfigurationProvider.java:112)
    at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:264)
    at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:67)
    ... 17 more

avr. 11, 2016 1:53:42 AM org.apache.catalina.core.StandardContext filterStart
GRAVE: Exception au démarrage du filtre struts2
Unable to load configuration. - action - file:/C:/Users/agles/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/jkl/WEB-INF/classes/struts.xml:10:30
    at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:496)
    at org.apache.struts2.dispatcher.ng.InitOperations.initDispatcher(InitOperations.java:74)
    at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFilter.java:57)
    at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:279)
    at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:260)
    at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:105)
    at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4908)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5602)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1572)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1562)
    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: Unable to load configuration. - action - file:/C:/Users/agles/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/jkl/WEB-INF/classes/struts.xml:10:30
    at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:70)
    at org.apache.struts2.dispatcher.Dispatcher.getContainer(Dispatcher.java:970)
    at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:438)
    at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:482)
    ... 14 more
Caused by: Action class [tebitebi.Cls] not found - action - file:/C:/Users/agles/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/jkl/WEB-INF/classes/struts.xml:10:30
    at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.verifyAction(XmlConfigurationProvider.java:486)
    at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addAction(XmlConfigurationProvider.java:429)
    at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addPackage(XmlConfigurationProvider.java:556)
    at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadPackages(XmlConfigurationProvider.java:295)
    at org.apache.struts2.config.StrutsXmlConfigurationProvider.loadPackages(StrutsXmlConfigurationProvider.java:112)
    at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:264)
    at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:67)
    ... 17 more

avr. 11, 2016 1:53:42 AM org.apache.catalina.core.StandardContext startInternal
GRAVE: One or more Filters failed to start. Full details will be found in the appropriate container log file
avr. 11, 2016 1:53:42 AM org.apache.catalina.core.StandardContext startInternal
GRAVE: Erreur de démarrage du contexte [/jkl] suite aux erreurs précédentes
avr. 11, 2016 1:53:43 AM org.apache.coyote.AbstractProtocol start
INFOS: Starting ProtocolHandler ["http-bio-8080"]
avr. 11, 2016 1:53:43 AM org.apache.coyote.AbstractProtocol start
INFOS: Starting ProtocolHandler ["ajp-bio-8009"]
avr. 11, 2016 1:53:43 AM org.apache.catalina.startup.Catalina start
INFOS: Server startup in 5406 ms

1 个答案:

答案 0 :(得分:2)

当资源不在适当的位置或未成功部署应用程序时,将发现404未找到。
我使用了你的web.xml和struts.xml并创建了以下jsp和class文件,它对我有用。

的index.jsp -

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Index Page</title>
</head>
<body>
<form action="go">

    <input type="submit" value="submit">
</form>

</body>
</html>

go.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Go</title>
</head>
<body>
Go Page Reached
</body>
</html>

Cls.java

package tebitebi;

public class Cls {

    public String execute(){

        System.out.println("in execute");
        return "success";
    }

}

确保以下事项 1. index.jsp和go.jsp直接在webcontent下 2.所有与struts相关的jar文件都包含在构建路径中,供参考Necessary jar files for basic sturts 2 application