2016-08-16 37 views
0

我想重寫一個Web應用程序(Eclipse RAP)的參數。參數是我自己的,不是由RAP處理的。使用jetty如何重寫Eclipse RAP應用程序的參數?

目標是將/rap/viewer/locale/fr重寫爲/rap/viewer?locale=fr

但已經是一個簡單的測試失敗:

RewritePatternRule rule = new RewritePatternRule(); 
rule.setPattern("/test/viewer"); 
rule.setReplacement("/rap/viewer"); 
rewriter.addRule(rule); 

的問題是,web應用需要這似乎是相對路徑,所以資源: /rap/rwt-resources/resources.js變成/test/rwt-resources/resources.js。然後導致一個空白屏幕。

有關我如何克服這個問題的任何想法?

回答

1

重寫僅適用於路徑。

它不適用於查詢參數,URI參數,URI模板,路徑參數,主機,端口和方案。

由於您的需求也跨越了多個上下文,因此您可能需要編寫自己的Jetty級別的Handler,它位於處理器樹中的所有上下文之前,它執行您感興趣的邏輯。

但是,當您使用Eclipse RAP時,從Eclipse RAP(完成此操作的要求)中確實無法很好地訪問原始Jetty Server處理程序樹。

相關問題