Posted on 2010-09-08 17:15
疯狂 阅读(8790)
评论(0) 编辑 收藏 所属分类:
java 、
questions_hander 、
questions 、
spring
在不使用spring。单独使用struts是报错:
严重: Exception starting filter struts2
java.lang.NullPointerException
at com.opensymphony.xwork2.spring.SpringObjectFactory.getClassInstance(SpringObjectFactory.java:190)
。。。
原因是多了一个struts2-spring-plugin-X.jar包,
此包是struts的spring的插件:
打开struts2-spring-plugin-X.jar看一下struts-plugin.xml内容:
<struts>
<bean type="com.opensymphony.xwork2.ObjectFactory" name="spring" class="org.apache.struts2.spring.StrutsSpringObjectFactory" />
<!-- Make the Spring object factory the automatic default -->
<constant name="struts.objectFactory" value="spring" />
<package name="spring-default">
<interceptors>
<interceptor name="autowiring" class="com.opensymphony.xwork2.spring.interceptor.ActionAutowiringInterceptor"/>
<interceptor name="sessionAutowiring" class="org.apache.struts2.spring.interceptor.SessionContextAutowiringInterceptor"/>
</interceptors>
</package>
</struts>
请大家关注红色部分:
<!-- Make the Spring object factory the automatic default -->意思是:会将Spring object factory 设置为默认。也就是说我们不配置struts.objectFactory=spring 但是只要这个包在classpath下就等于设置了struts.objectFactory=spring 。
解决办法,去掉此包即可.