针对Web应用程序问题的Struts2 web.xml文件过滤器jar

时间:2013-02-28 00:27:36

标签: java xml web-applications struts2

我目前正在尝试使用Struts2框架创建一个小型Web应用程序。 (在日食中)

我目前正在尝试使用web.xml(在WEB-INF文件夹中)文件中的过滤器将控制转移到struts.xml文件(在src文件夹中)。 (这是我在教程中看到的)。

我用于过滤器的代码如下:

<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> 

我认为Tomcat没有在过滤器的JAR文件中找到该类,因为我不断收到以下错误:

  

java.lang.NoClassDefFoundError:com / opensymphony / xwork2 / ActionContext       在org.apache.struts2.dispatcher.ng.InitOperations.cleanup(InitOperations.java:114)       在org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFilter.java:60)
  ......持续了很长一段时间。

我从Struts网页下载了Jar文件,我设置到构建路径的方式如下:

我右键点击该项目并转到属性

进入Java Build Path部分并创建一个新库

将所有Jar文件添加到该库并将其分配给此Web应用程序的构建路径

然后我将此Jar库添加到Deployment Assembly中,以便在运行时将其部署到WEB-INF / lib文件夹。

据我所知,这应该有效,因为它在我所遵循的教程中有效!但是,它对我不起作用。

当我运行我的项目并通过我的PC导航到保存项目的地方时,如果我查看WEB-INF / lib文件夹,那里没有任何Jar文件,这可能是问题所在吗?或者这是正常的吗?

感谢您的帮助,非常感谢!

修改

以下是我正在使用的jar文件:

commons-fileupload-1.2.2
commons-io-2.0.1
commons-logging-1.1.1
commons-logging-api-1.1
freemarker-2.3.19
javaassist-3.11.0.GA
ognl-3.0.6
struts2-core-2.3.8
xwork-core-2.3.8
commons-lang-2.4

已解决 - 通过在新构建上完全重新启动项目来解决! 更新 - 还通过删除所有jar并重新创建jar库来修复旧构建,并将其重新分配给构建路径/ Deplyment Assembly(尽管在尝试调试时已经这样做了数百次)

然后删除旧的Tomcat服务器并分配一个新服务器。

不完全确定是什么修复它,但它现在都在工作

1 个答案:

答案 0 :(得分:2)

如果您打开标记视图,则应该有 Classpath依赖关系 验证者消息警告组。如果你扩展该组,你应该 看到类似的警告:

类路径条目???不会导出或发布。  可能会导致RuntimeClassNotFoundExceptions。

右键单击这些警告  并选择快速修复。这允许你 标记类路径条目以包含在WEB-INF / lib中。