1

背景: 2 つのアプリケーションを持つアーキテクチャがあります。1 つはヘッダーとフッター (共通) でレイアウトを処理します。もう 1 つはアプリケーション自体 (アプリ) です。

Common には、リクエストを処理する一連のフィルターと、リクエストを App に転送 (dispatcher.forward) するサーブレットがあります。Common は純粋な Java アプリケーションの前にあり、App は通常 Spring MVC ベースでした。Common は現在、Spring で書き直されています。

問題:アプリでリクエストが処理された後、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 がその子になるということです。

4

0 に答える 0