问题是这样的,学了几天的struts2 也算是能够写一两个初级入门的代码,懂得如何配置web.xml, struts.xml了,但是今天早上遇到一个问题,写好一个action和相关页面,在struts.xml里面配置好了之后启动tomcat输入地址之后总是报错,报错信息就是:
HTTP Status 404 - --------------------------------------------------------------------------------type Status reportmessage description The requested resource () is not available.
--------------------------------------------------------------------------------Apache Tomcat/5.5.30于是我重新写了一个test.jsp还是错,最后定位问题,我把web.xml里面的如下配置代码删除之后就能显示页面了:
<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.xml里面关于struts2的配置我之前也一直这样写怎么重来都没有错过啊,今天怎么就开始报错呢。求大家帮帮忙了。

解决方案 »

  1.   

    而且更奇怪的是,只要我配置了web.xml之后再一次redeploy就会报这样的错。。
    2010-10-8 14:10:44 org.apache.catalina.core.StandardContext start
    严重: Error filterStart
    2010-10-8 14:10:44 org.apache.catalina.core.StandardContext start
    严重: Context [/Test1] startup failed due to previous errors
      

  2.   

    根据LZ的描述好像是
    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

    将test.jsp给过滤了,重来没遇到过这个问题建议换成
    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>*.action</url-pattern>
    </filter-mapping>

    看看
      

  3.   


    <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
        version="2.5">
        <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>*.action</url-pattern> <!--处理struts请求,没试过去掉.action,去掉试试-->
        </filter-mapping>
        <filter-mapping>
            <filter-name>struts2</filter-name>
            <url-pattern>*.jsp</url-pattern><!--处理jsp请求-->
        </filter-mapping>
    </web-app>
      

  4.   

    谢谢,但是好像还是不成啊,我只要已修改web.xml里面的内容,就会报如下的错。。
    2010-10-8 14:49:55 org.apache.catalina.startup.HostConfig checkResources
    信息: Reloading context [/Test1]
    2010-10-8 14:49:55 org.apache.catalina.core.StandardContext stop
    信息: Container org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/Test1] has not been started
    2010-10-8 14:50:06 org.apache.catalina.startup.HostConfig checkResources
    信息: Reloading context [/Test1]
    2010-10-8 14:50:06 com.opensymphony.xwork2.util.logging.commons.CommonsLogger warn
    警告: Could not create JarEntryRevision for [jar:file:/D:/Tomcat5.5/webapps/Test1/WEB-INF/lib/struts2-core-2.2.1.jar]!
    java.lang.NoClassDefFoundError: org/apache/commons/io/output/NullOutputStream
    at com.opensymphony.xwork2.util.FileManager$JarEntryRevision.build(FileManager.java:307)
    at com.opensymphony.xwork2.util.FileManager.loadFile(FileManager.java:145)
    at com.opensymphony.xwork2.util.FileManager.loadFile(FileManager.java:105)
    at 2010-10-8 14:50:06 org.apache.catalina.core.StandardContext start
    严重: Error filterStart
    2010-10-8 14:50:06 org.apache.catalina.core.StandardContext start
    严重: Context [/Test1] startup failed due to previous errors
      

  5.   


    导入的jar 是不是少了 common.io.*.jar ???  或其他的jar
      

  6.   

    严重: Context [/Test1] startup failed due to previous errors
    在部署的时候就失败了,所以Test1下的所有资源都是404
    这与Struts的配置无关,web.xml中的写法也是对的
    建议重装tomcat,我怀疑是tomcat出了问题信息: Reloading context [/Test1]从这个来看,你是不是在使用IDE的自动重部署功能
    可以选择手工拷贝web.xml到tomcat的相关目录,再单独启动tomcat试试
      

  7.   

    嗯,可能真的是tomcat出了问题吧,我再试试。。
      

  8.   

    想了想,觉得不会是tomcat出问题吧,因为如果我没有配置web.xml的话就没有报错能正常运行,只是一配置web.xml才报错的呀。
      

  9.   

    把struts2-core-2.2.1.jar放到WEB-INF/lib里试一下......
      

  10.   

    谢谢大家的回答,我找到答案了,是版本问题,我用的是2.1.16有问题,我换了2.0.14之后又添加了struts2-core-2.2.1.jar之后就可以了