背景:我们有一个包含两个应用程序的架构:一个处理带有页眉和页脚的布局(Common);另一个是应用程序本身(App)。
Common有一组处理请求的过滤器和一个将请求转发(dispatcher.forward)到App的servlet。 Common是在纯Java应用程序和App通常是基于Spring MVC之前。 Common现在正在用Spring重写。
问题:在App中处理请求后,Common需要处理可能的错误,然后从应用程序上下文消息源中查找翻译。但是发生以下异常:
java.lang.ClassCastException: org.springframework.web.context.support.AnnotationConfigWebApplicationContext
at org.springframework.web.servlet.support.RequestContextUtils.getWebApplicationContext(RequestContextUtils.java:79)
at org.springframework.web.servlet.support.RequestContext.initContext(RequestContext.java:209)
at org.springframework.web.servlet.support.JspAwareRequestContext.initContext(JspAwareRequestContext.java:74)
at org.springframework.web.servlet.support.JspAwareRequestContext.<init>(JspAwareRequestContext.java:48)
at org.springframework.web.servlet.tags.RequestContextAwareTag.doStartTag(RequestContextAwareTag.java:77)
at org.apache.jsp.html._404_jsp._jspx_meth_spring_005fmessage_005f0(_404_jsp.java:162)
Spring似乎无法跟踪原始ApplicationContext并抛出异常。这个问题有解决方法吗?我们可以将这些背景分开吗?我所看到的是,Common变成了根本上下文,App成为了孩子。