DispatcherServlet设置web.xml的调整 - 需要替代BeanInjection方法

时间:2014-05-28 04:02:35

标签: spring spring-mvc

我正在尝试在web.xml中调整我的调度程序servlet的定义。

我使用下面的设置完美地完成了所有工作...

<servlet>
    <servlet-name>mvc-dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>
<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>
        /WEB-INF/mvc-dispatcher-servlet.xml,
        classpath:META-INF/spring/spring-application-context.xml
    </param-value>
</context-param>

但是现在我正在尝试将设置调整为以下内容并且我收到错误...

<servlet>
    <servlet-name>mvc-dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>
           /WEB-INF/mvc-dispatcher-servlet.xml
        </param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>
        classpath:META-INF/spring/spring-application-context.xml
    </param-value>
</context-param>

我得到的错误是我的一个过滤器类的空指针异常,因为在该类中我执行以下操作...

@Autowired
@Qualifier("sessionRegistry")
private SessionRegistry sessionRegistry;

在类路径中的某处定义@Qualifier(&#34; sessionRegistry&#34;):META-INF / spring / spring-application-context.xml。所以我正在做的是使用限定符抓取spring-application-context.xml中定义的bean,但我不能再使用web.xml中的新DispatcherServlet定义。

有人可以向我建议一种注入我的spring-application-context.xml中定义的sessionRegistry bean的替代方法。

SessionRegistry在spring-application-context.xml中定义,就像这样...

<beans:bean id="sessionRegistry" class="org.springframework.security.core.session.SessionRegistryImpl" />

更新 我在web.xml中定义了ContextLoaderListener

<listener>
    <listener-class>
        org.springframework.web.context.ContextLoaderListener
    </listener-class>
</listener>

这是我的完整web.xml的链接......

http://pastebin.com/fJXwGNgn

感谢

0 个答案:

没有答案