[cubby-user:92] Re: cubbyを一部のPATHのみに適用したい。

Masanobu Shimura [E-MAIL ADDRESS DELETED]
2008年 9月 17日 (水) 20:15:38 JST


馬場さん

早速のご返事ありがとうございました。

/jsの下に移動したら、OKになりました。

志村


2008/09/17 16:37 BABA,Yasuyuki <[E-MAIL ADDRESS DELETED]>:
> 馬場です。
>
> RequestRoutingFilter が URL からアクションを決定後、CubbyFilter に
> /__internal_forward というパスで FORWARD します。
> その宛先がみつからないので 404 になっているようですね。
>
> CubbyFilter はドキュメントの通りに設定しているなら FORWARD のみを受け付
> けるようになっていると思います。
>
>    <filter-mapping>
>        <filter-name>cubbyFilter</filter-name>
>        <url-pattern>/*</url-pattern>
>        <dispatcher>FORWARD</dispatcher>    <-- ここ
>    </filter-mapping>
>
> CubbyFilter は HOT DEPLOY とは直接関係がないので、url-pattern は /* のま
> までもよいかと思います。
>
>
> 特定のディレクトリを Cubby の処理対象外にしたいならば、対象外にしたい
> ディレクトリを RequestRoutingFilter の初期化パラメータ ignorePathPattern
> で設定することができます。
>
>    <filter>
>        <filter-name>requestRoutingFilter</filter-name>
>
> <filter-class>org.seasar.cubby.filter.RequestRoutingFilter</filter-class>
>        <init-param>
>            <param-name>ignorePathPattern</param-name>
>            <param-value>/css/.*,/js/.*,/img/.*</param-value>  <-- ここ
>        </init-param>
>    </filter>
>
>
> 以下のドキュメントを参照してください。
> http://cubby.seasar.org/setup.html#%E3%83%87%E3%83%97%E3%83%AD%E3%82%A4%E3%83%A1%E3%83%B3%E3%83%88%E8%A8%98%E8%BF%B0%E5%AD%90_WEB-INFweb.xml
>
>
> Masanobu Shimura さんは書きました:
>> Cubbyを利用させていただいています。
>> 通常通り Cubbyを <url-pattern>/*</url-pattern> に適用はうまくいったのですが、
>> dojoを使用しており、dojoのjavascript を downloadするたびに HOT DEPLOYされるので、
>> 適用を一部の 下位 PATHのみにしたいと思っています。(他に良い方法がありましたらご教授願います)
>>
>> そこで、web.xmlの cubbyFilterやhotdeployFilterを <url-pattern>/dojo/*</url-pattern> の様に
>> 一部 PATHの適用に変えました。
>>
>> DojoAction Classは、下記の様になっています。
>>
>> public class DojoAction extends Action {
>>       @RequestParameter
>>       String loginname;
>>       @RequestParameter
>>       String password;
>>       public HttpServletRequest request;
>>       private HashMap loginr = new HashMap();
>>       public ActionResult login() {
>>               if (loginname!=null &&  loginname.equals("S")) {
>>                       loginr.put("result", "pass");
>>               } else {
>>                       loginr.put("result", "fail");
>>               }
>>               return new Json(loginr);
>>       }
>> }
>>
>> これは、以前と変わっていないのですが、上記変更をおこなうと、以前は下記 LOG(抜粋)だったのが、
>>
>> DEBUG 2008-09-16 22:49:20,992 [btpool0-4] アクションメソッドを登録します
>> [regex=^/$,method=public org.seasar.cubby.action.ActionResult
>> com.shimura.cubby.dojo.action.IndexAction.index(),uriParameterNames=[],requestMethod=POST,onSubmit=null,priority=2147483647,auto=true]
>> DEBUG 2008-09-16 22:49:20,993 [btpool0-4] /__internal_forward
>> へフォワードします (ルーティング {null=[regex=^/dojo/login$,method=public
>> org.seasar.cubby.action.ActionResult
>> com.shimura.cubby.dojo.action.DojoAction.login(),uriParameterNames=[],requestMethod=GET,onSubmit=null,priority=2147483647,auto=true]})
>> DEBUG 2008-09-16 22:49:20,993 [btpool0-4] リクエストされたURIに次のルーティングがマッチしました
>> {null=[regex=^/dojo/login$,method=public
>> org.seasar.cubby.action.ActionResult
>> com.shimura.cubby.dojo.action.DojoAction.login(),uriParameterNames=[],requestMethod=GET,onSubmit=null,priority=2147483647,auto=true]}
>> DEBUG 2008-09-16 22:49:20,994 [btpool0-4]
>> [E-MAIL ADDRESS DELETED]
>> を用いてリクエストを解析します。
>> DEBUG 2008-09-16 22:49:20,994 [btpool0-4] /__internal_forward の処理を開始します
>> DEBUG 2008-09-16 22:49:20,994 [btpool0-4] アクションメソッド(public
>> org.seasar.cubby.action.ActionResult
>> com.shimura.cubby.dojo.action.DojoAction.login())を実行します
>> DEBUG 2008-09-16 22:49:21,006 [btpool0-4]
>> クラス(com.shimura.cubby.dojo.action.DojoAction[dojoAction])のコンポーネント定義を登録します
>> DEBUG 2008-09-16 22:49:21,100 [btpool0-4] [PropertyInterType]
>> Introducing... com.shimura.cubby.dojo.action.DojoAction
>>
>> 下記の様になってしまいます。
>>
>> DEBUG 2008-09-16 23:12:11,808 [btpool0-2] アクションメソッドを登録します
>> [regex=^/$,method=public org.seasar.cubby.action.ActionResult
>> com.shimura.cubby.dojo.action.IndexAction.index(),uriParameterNames=[],requestMethod=POST,onSubmit=null,priority=2147483647,auto=true]
>> DEBUG 2008-09-16 23:12:11,810 [btpool0-2] /__internal_forward
>> へフォワードします (ルーティング {null=[regex=^/dojo/login$,method=public
>> org.seasar.cubby.action.ActionResult
>> com.shimura.cubby.dojo.action.DojoAction.login(),uriParameterNames=[],requestMethod=GET,onSubmit=null,priority=2147483647,auto=true]})
>> DEBUG 2008-09-16 23:12:11,810 [btpool0-2] リクエストされたURIに次のルーティングがマッチしました
>> {null=[regex=^/dojo/login$,method=public
>> org.seasar.cubby.action.ActionResult
>> com.shimura.cubby.dojo.action.DojoAction.login(),uriParameterNames=[],requestMethod=GET,onSubmit=null,priority=2147483647,auto=true]}
>> DEBUG 2008-09-16 23:12:11,839 [btpool0-2] HOT deployを終了しました
>>
>> 画面(直接アクセスすると)には
>>
>> HTTP ERROR: 404
>>
>> NOT_FOUND
>>
>> RequestURI=/__internal_forward
>>
>> と表示されます。
>>
>> ヒントがあればよろしくお願いいたします。
>>
>> 志村正信
>> _______________________________________________
>> cubby-user mailing list
>> [E-MAIL ADDRESS DELETED]
>> https://ml.seasar.org/mailman/listinfo/cubby-user
>
>
> --
> BABA,Yasuyuki
> [E-MAIL ADDRESS DELETED]
> _______________________________________________
> cubby-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/cubby-user
>


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