[Seasar-user:4824] Re: [S2JSF] PathNotFound でページ遷移できない

m.matsuo [E-MAIL ADDRESS DELETED]
2006年 10月 19日 (木) 15:06:33 JST


松尾です。

私も昔同様のことで悩んでおり、結局諦めた経緯があります。
なので、回避策があれば提示していただけませんでしょうか。

もし、回避策がない場合
ViewTemplateFactoryImpl#getViewTemplateFromResource
の92行目
throw new PathNotFoundRuntimeException(path);
の部分を
ErrorPageManager#handleException
をコールするように変更して頂けるとjsfErrorPage.diconで回避できるので非常に助かります。
※詳細にソースを追っていないので、その修正によってどのような影響がでるのかはわかりません

よろしければ、ご検討いただけますでしょうか。

以上

06/10/19 に Hiroshi Yamamoto<[E-MAIL ADDRESS DELETED]> さんは書きました:
> 山元と申します。
> 古い件で申し訳ないのですが、同様の件で対応に悩んでおります。
>
> 現象を再度説明すると
> ・PathNotFoundRuntimeExceptionの発生
> ・内部エラーによりhttpステータス500となる
> です。
>
> 検討した対応としては下記のとおりです。
>
> ・jsfErrorPage.diconでの設定による回避
>   ->出来なかった
> ・web.xmlのerror-pageの設定による回避
>   ->ステータスコード500での回避となり、本来の404には出来ない
> ・サーブレットフィルタで例外を処理する(力技)
>   ->フィルタに到達した例外はServletExceptionになっていて出来ない(causeも無し)
>
> 現状何か回避策はありませんでしょうか。
>
> 使用しているS2のバージョンとスタックトレースを貼っておきます。
> S2Container 2.3.12
> S2JSF 1.0.18
>
> org.seasar.jsf.exception.PathNotFoundRuntimeException:
> [EJSF0007]Path(/hoge.html)が見つかりません
>        at org.seasar.jsf.runtime.ViewTemplateFactoryImpl.getViewTemplateFromResource(ViewTemplateFactoryImpl.java:92)
>        at org.seasar.jsf.runtime.ViewTemplateFactoryImpl.getViewTemplate(ViewTemplateFactoryImpl.java:62)
>        at org.seasar.jsf.application.S2StateManager.getLastModifiedFromFile(S2StateManager.java:115)
>        at org.seasar.jsf.application.S2StateManager.isViewModified(S2StateManager.java:109)
>        at org.seasar.jsf.application.S2StateManager.restoreView(S2StateManager.java:228)
>        at org.seasar.jsf.application.S2ViewHandler.restoreView(S2ViewHandler.java:142)
>        at org.seasar.jsf.lifecycle.LifecycleImpl.restoreView(LifecycleImpl.java:125)
>        at org.seasar.jsf.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:65)
>        at javax.faces.webapp.FacesServlet.service(FacesServlet.java:109)
>        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
>        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>        at org.seasar.extension.filter.EncodingFilter.doFilter(EncodingFilter.java:62)
>        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>        at org.seasar.framework.container.filter.S2ContainerFilter.doFilter(S2ContainerFilter.java:60)
>        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>        at org.apache.myfaces.component.html.util.ExtensionsFilter.doFilter(ExtensionsFilter.java:112)
>        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
>        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
>        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:432)
>        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
>        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
>        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
>        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
>        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
>        at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
>        at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
>        at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
>        at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
>        at java.lang.Thread.run(Thread.java:595)
>
> 以上になります。
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://www.seasar.org/mailman/listinfo/seasar-user
>


-- 
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
  松尾
  [E-MAIL ADDRESS DELETED]
  http://d.hatena.ne.jp/devworks/
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/



Seasar-user メーリングリストの案内