websphereアプリケーションサーバーを使用しています。 web.xmlがマッピングを持っていますサーブレットのURLマッピング:Resolverを表示するとStackOverflowが発生する
<servlet>
<servlet-name>MyDispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/myconfig.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet>
<servlet-name>JSPDispatcher</servlet-name>
<servlet-class>com.dispatcher.JSPDispatcher</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>MyDispatcher</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>JSPDispatcher</servlet-name>
<url-pattern>*.jsp</url-pattern>
</servlet-mapping>
次は、私のコンテキストの設定は、私はすべての要求カスタムエラーページに* .jspファイルを送信しようとしているMA、基本的に
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:prefix="/WEB-INF/jsp/"
p:suffix=".jsp" />
<bean id="contentNegotiatingViewResolver" class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver"
p:order="1">
<property name="mediaTypes">
<map>
<entry key="json" value="application/json" />
</map>
</property>
</bean>
<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">
<property name="defaultHandler" ref="defaultController" />
</bean>
を持っています。 * .jspもDispatcherServletにマップすることができましたが、後で、Dispatcherservletに複数のマッピングを渡すか、上記のような別々のサーブレットにマップするかにかかわらず、問題は同じままです。
私のviewResolverはviewNameを受け取るたびに.jspという接尾辞が付けられ、JSPDispatcherスコープで再び終了し、viewNameを再び生成するコントローラに転送されます。
だから、それは ディスパッチャ-Controller- ViewResolver .....にStackOverflowErrorを引き起こし
に転送するディスパッチャ・コントローラー・ViewResolver--の無限のサイクルになります。
どうすればこの問題を解決できますか?サーブレットの
ハハ...すごい...それは** StackOverflowの** ** ** StackOverflowのサイト上での良い質問です。 ;) –
すべての* .jsp要求がカスタムエラーページに表示される理由 – developer
com.dispatcher.JSPDispatcherのコードを投稿する必要があります – developer