最简单的struts2 实验 出错了,求指点

逍遥兮容与 2011-09-19 07:55:47
我用的struts2 2.2.3

commons-fileupload-1.2.2
commons-io-2.0.1
commons-lang-2.5
commons-logging-1.1.1
freemarker-2.3.16
javassist-3.11.0.GA
ognl-3.0.1
struts2-core-2.2.3
xwork-core-2.2.3
这几个包都导入了

但启动tomcat的时候会报 严重: Exception starting filter struts2
java.lang.ClassNotFoundException: org.apache.struts2.dispatcher.FilterDispatcher
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1676)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1521)
at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:415)
at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:397)
at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:118)
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:252)
at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:372)
at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:98)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4461)
at org.apache.catalina.core.StandardContext$2.call(StandardContext.java:5133)
at org.apache.catalina.core.StandardContext$2.call(StandardContext.java:5128)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)

照提示是说找不到那个类,但我绝对导进去了,就是这个包struts2-core-2.2.3
我把我的XML配置文件也放出来一下

web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<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>
<package name="struts" extends="struts-default">
<action name="login" class="action.LoginAction">
<result name="error">/error.jsp</result>
<result name="success">/welcome.jsp</result>
</action>
</package>
</struts>
...全文
242 27 打赏 收藏 转发到动态 举报
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
惢随你动 2011-09-20
  • 打赏
  • 举报
回复
全局的逻辑控制器为一个过滤器,负责过滤所有的请求。该过滤器引用的类是
org.apache.struts2.disapatcher.FilterDispatcher (2.1.6之后就不推荐使用了)
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
在web.xml中的配置如下:
<filter>
<filter-name>struts</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
heboucheng 2011-09-20
  • 打赏
  • 举报
回复
FilterDispatcher过时了吧,我用2.1.6就用StrutsPareAndExecuteFilter了,不过,2.1.6还是保留了FilterDispatcher这个类
逍遥兮容与 2011-09-20
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 skamalu1 的回复:]

我来告诉你,你这个版本的要这么配,一般都是导入包不全
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
</filter-class>
</fil……
[/Quote]
那个错误是没了,好像可以, 这是为什么呢?
cm_0914 2011-09-20
  • 打赏
  • 举报
回复
我以前也总出现这个问题,最终的原因就是web.xml配置文件有错,建议你重新写一遍,我就是重新写一遍就好了,要不你就把以前对的直接copy过去,然后有变化的地方自己手动改改,但是要细心
逍遥兮容与 2011-09-20
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 zyz1985 的回复:]

好像给的错误信息很明显了,在eclipse下 ctrl+shift+t搜索下FilterDispatcher,应该是struts2-core-2.2.3没有这个类,本地不让下载帮你看不了
[/Quote]
有的
izard999 2011-09-20
  • 打赏
  • 举报
回复
说实话, Struts2我从2.0.x玩到2.2.1就没搞web了.!
随着版本变化,依赖的包都变了几回了, 每回记他要哪几个包要死人的啊!
izard999 2011-09-20
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 skamalu1 的回复:]

我来告诉你,你这个版本的要这么配,一般都是导入包不全
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
</filter-class>
</fil……
[/Quote]
不要自己加包了, lib下面那么多包你知道哪些要哪些不要.?
下回来的包里面有samples的, 那些工程里面绝对有配置文件的配置和lib的, 统统copy到你的就完了.!
源码包里面的东西给你都是能供你使用的, 不是下载回来当摆设的阿!
skamalu1 2011-09-20
  • 打赏
  • 举报
回复
我来告诉你,你这个版本的要这么配,一般都是导入包不全
<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>
最关键是导入这几个包
asm-3.1.jar,asm-commons-3.1.jar,asm-tree-3.1.jar,
commons-fileupload-1.2.2.jar,commons-io-2.0.1.jar,
commons-lang-2.5.jar,freemarker-2.3.16.jar,javassist-3.11.0.GA.jar
ognl-3.0.1.jar,struts2-core-2.2.3.jar,xwork-core-2.2.3.jar
游一游走一走 2011-09-20
  • 打赏
  • 举报
回复
好像给的错误信息很明显了,在eclipse下 ctrl+shift+t搜索下FilterDispatcher,应该是struts2-core-2.2.3没有这个类,本地不让下载帮你看不了
riyuezhizhi 2011-09-20
  • 打赏
  • 举报
回复
你有没有用到struts里面的标签啊,用到了的话就检查一下,如果写错了跳转的时候也会报错
dragon0753 2011-09-20
  • 打赏
  • 举报
回复
老的是FilterDispatcher,
2.1开始,新的都用org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter了吧。
bijanen19861113 2011-09-20
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 zzzz3621 的回复:]
引用 2 楼 yexiongmybh 的回复:

XML code

<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>

<f……
[/Quote]

貌似大家都在关注包的问题和过滤器的问题,我说一点,楼主看看有没有帮助的,就是web.xml中头声明的问题,你找个正确的例子,然后把例子的头声明拷贝过来试试..
niuniu20008 2011-09-20
  • 打赏
  • 举报
回复
Struts2提供了很多jar包,但不要一下子全导入这些jar包,不然会报错,其实只需要一下这些包就够了
commons-beanutils-1.7.0.jar ;
commons-chain-1.2.jar;
commons-collections03.2.jar ;
commons-digester02.0.jar ;
commons-fileupload-1.2.jar;
commons-io-1.3.2.jar ;
commons-lang-2.3.jar ;
commons-logging-1.0.4.jar;
commons-logging-api-1.1.jar ;
commons-validator-1.3.1.jar ;

struts2-core-2.1.8.jar;--单控制器jar包

antlr-2.72.jar ;
freemarker-2.3.15.jar;
ognl-2.7.3.jar ;
oro-2.0.8.jar ; --验证
xwork-core-2.1.6.jar;
逍遥兮容与 2011-09-20
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 dxqrr 的回复:]

xwork-core-2.2.3包需要自己冲新下载的,
你可以到官网下载xwork-core-2.2.3这个包,然后把这个包导入,替换原来的就可以了
[/Quote]
能讲下 为什么么?
游一游走一走 2011-09-20
  • 打赏
  • 举报
回复
额,我是信了,难怪遇见这样的问题就有人说是包少或则包冲突的问题,看来真是万能的
java.lang.ClassNotFoundException: org.apache.struts2.dispatcher.FilterDispatcher
真是不理解这样的错误和新加入的asm-3.1.jar,asm-commons-3.1.jar,asm-tree-3.1.jar这个有啥关系
dxqrr 2011-09-20
  • 打赏
  • 举报
回复
xwork-core-2.2.3包需要自己冲新下载的,
你可以到官网下载xwork-core-2.2.3这个包,然后把这个包导入,替换原来的就可以了
逍遥兮容与 2011-09-20
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 zyz1985 的回复:]

严重怀疑你的包没有放进WEB-INF/lib路径下,或者说发布工程时无同步到WEB-INF/lib目录下,本人测试过struts2-core-2.2.3 包含org.apache.struts2.disapatcher.FilterDispatcher过滤器使用的就是你的web.xml配置,是可以的
[/Quote]
绝对放了,不用怀疑,我加了asm-3.1.jar,asm-commons-3.1.jar,asm-tree-3.1.jar 三个包 就没问题了
游一游走一走 2011-09-20
  • 打赏
  • 举报
回复
严重怀疑你的包没有放进WEB-INF/lib路径下,或者说发布工程时无同步到WEB-INF/lib目录下,本人测试过struts2-core-2.2.3 包含org.apache.struts2.disapatcher.FilterDispatcher过滤器使用的就是你的web.xml配置,是可以的
逍遥兮容与 2011-09-20
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 g1512161790 的回复:]

全局的逻辑控制器为一个过滤器,负责过滤所有的请求。该过滤器引用的类是
org.apache.struts2.disapatcher.FilterDispatcher (2.1.6之后就不推荐使用了)
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
在web.xml中的配置如下:
<filter>
……
[/Quote]
这个我知道了,但绝对不是这个的问题,我有改过,但报的错 仍然不变
逍遥兮容与 2011-09-20
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 heboucheng 的回复:]

FilterDispatcher过时了吧,我用2.1.6就用StrutsPareAndExecuteFilter了,不过,2.1.6还是保留了FilterDispatcher这个类
[/Quote]
那个FilterDispatcher 还在的呀
加载更多回复(7)

67,541

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧