关于Spring4+Struts2.5 内部配置-配置文件路径-经常报的无法加载默认配置文件-错误说明
选用的是**Struts2.5**之后的版本。
1、无法加载默认配置文件
首先是Struts2.5的核心jar包中已经集成了xwork,所以无需添加相关jar包配置。
其次,不要忘了Freemaker的jar包,是必不可少的。
假如jar包的导入或者配置本身出错,
容器启动时候的第一个报错肯定是
Unable to load configuration. - bean - jar:file:/F:/apache-tomcat-6.0.41/webapps/fjwssh/WEB-INF/lib/struts2-core-2.5.1.j
ar!/struts-default.xml:98:87
这是一种误导,去检查自己的jar包即可。
2、关于Spring4的官方帮助文档以及web.xml中的配置文件路径的说明。
选用的是**_ spring-framework-4.1.0.RELEASE-dist_**
由于本人比较迷信官方文档,这次出了大溴。
首先关于监听器的配置
官方文档说,还可以采用
<servlet>
<servlet-name>context</servlet-name>
<servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
结果根本就没有这个类的存在
获取别的版本有,不深究了
官方文档说,可以采用
<param-value>/WEB-INF/*/applicationContext*.xml</param-value>
结果我就信了,想着应该是发布项目的路径。
结果并不是,这个路径跟项目发布之后的类路径根本就没有任何关系,单纯的指的是你的项目的WEB-INF文件夹下的相关的文件, 而非发布项目之后生成的服务器上的WEB-INF文件夹
除非有特殊需求,否则,在项目中只需要保护好Struts2的动作类的配置文件的访问局限就可以,Spring的配置文件是无所谓的。
对于一般的使用情况,还是classpath最靠谱
<param-value>classpath:spring/applicationContext.xml</param-value>
最后,提示一个Struts2.5之后的过滤器的配置
优化了一下结构 -
<filter>
<filter-name>struts-prepare</filter-name>
<filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareFilter</filter-class>
</filter>
<filter>
<filter-name>struts-execute</filter-name>
<filter-class>org.apache.struts2.dispatcher.filter.StrutsExecuteFilter</filter-class>
</filter>
如需要转载 请注明文章出处 https://my.oschina.net/u/3032872/blog/1648367 谢谢~