2017-05-17 7 views
0

ApacheのTapestryを使用して従来のWebアプリケーションを構築しました。私はいくつかのページを除いて、アプリケーションの機能のほとんどを非難しました。私はこのアプリケーションを本番環境で稼働させたいと思っていますが、廃止予定のページ/ URLを404エラーコードのあるエラーページにリダイレクトしたいのです。どこで設定する必要がありますか?私はweb.xmlとjboss-web.xmlを持っています。いくつかのTapestry設定ファイルでそれを行う必要がありますか?あなたは、すなわちあなたのAppModuleで、要請ハンドラサービスにRequestFilter貢献できるTapestry:廃止予定のURLをエラーページにリダイレクトする方法

答えて

0

public void contributeRequestHandler(
       OrderedConfiguration<RequestFilter> configuration) 
{ 
    // Each contribution to an ordered configuration has a name, 
    // When necessary, you may set constraints to precisely control 
    // the invocation order of the contributed filter within the pipeline. 

    configuration.add("DeprecatedURLs", new RequestFilter() { 
     @Override 
     public boolean service(Request request, 
           Response response, 
           RequestHandler handler) throws IOException 
     { 
      String path = request.getPath(); 
      if (isDeprecated(path)) 
      { 
       response.sendError(404, "Not found"); 
       return; 
      } 

      return handler.service(request, response); 
     } 
    }, "before:*"); 
} 

お知らせbefore:*順序制約を、それがRequestHandler's configurationの最初として、このフィルタを登録する必要があります。

+0

レガシーアプリケーションコードにAppModuleやRequestHandlerのようなものは表示されません。私は実際にタペストリーについて何も知らない。私は、TapestryFilterがweb.xmlファイルで設定されているのを見ているだけです。 \t \t ResourcesApp \t \t <フィルタクラス> org.apache.tapestry5.TapestryFilter \t \t <フィルタマッピング> \t \t ResourcesApp < > \t \t \t /* user1614862

+0

あなたのフィルターは名前 'ResourcesApあるので、代わりに' 'AppModule'のResourcesAppModule'する必要がありますp。あなたがTapestryを知らず、あなたの "レガシー"アプリのタスクを少し習得したくない場合、あなたはいつもあなたのアプリの前にApacheやNGINXのようなHTTPプロキシを設定し、そこで廃止されたU​​RLを扱うことができます。 –

+0

ごめんなさい、タペストリーバージョンはありますか? –

関連する問題