Struts 2中没有资源

时间:2014-05-13 18:11:28

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

我是Struts的新手,我想执行HelloWorld程序,但是当我在<filter>中编写web.xml标记时,我收到“请求的资源不可用”错误。

Project hierarchy

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_2_5.xsd"
   id="WebApp_ID" version="2.5">

   <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.3//EN"
   "http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
   <package name="helloworld" extends="struts-default">
      <action name="hello" class="sagar.practice.HelloWorldAction" method="execute">
            <result name="success">/HelloWorld.jsp</result>
      </action>
   </package>
</struts>

我将所有必需的struts jar作为用户库添加。

我正在访问索引页面:http://localhost:8080/practice/index.jsp

如果我从<filter>文件中删除web.xml代码,我可以访问index.jsp页面,但如果我添加了<filter>代码,则会显示“请求的资源不可用”错误

3 个答案:

答案 0 :(得分:1)

您应该通过在devMode中设置常量来启用struts.xml。如果您想解决像您这样的问题,可以使用此模式。它提供了更多信息,因为它输出到正常模式中隐藏的控制台错误。

<constant name="struts.devMode" value="true" />  

打开它后,您可能会发现您的应用程序部署了错误或不一致的库集。您可能会在控制台上打印出java.lang.NoClassDefFoundError: org/apache/commons/lang3/StringUtils,然后使用丢失的jar调整库集。

解决错误需要commons-lang3-3.1.jar

答案 1 :(得分:0)

使用以下

更改struts.xml中的此内容
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
   "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
   "http://struts.apache.org/dtds/struts-2.3.dtd">

参考链接:click here

如果您在struts中使用2.0或更高版本。使用以下过滤器。

org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter

答案 2 :(得分:0)

在Web.xml中进行以下更改

<welcome-file>/WEB-INF/index.jsp</welcome-file>

在struts.xml中

<result name="success">/WEB-INF/HelloWorld.jsp</result>

它可以帮助你。