joe--专注java,开源,架构,项目管理

STANDING ON THE SHOULDERS OF GIANTS
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

详解异常:struts使用中的StrutsPrepareAndExecuteFilter

Posted on 2010-09-08 17:15  @joe  阅读(1908)  评论(0)    收藏  举报
在不使用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 。

 
解决办法,去掉此包即可.


@joe 2010-09-08 17:15 发表评论