我正在尝试在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的链接......
感谢