Camel 2.11 –具有URL重写功能的HTTP代理路由
在即將發(fā)布的Apache Camel 2.11版本中,我最近添加了對將自定義url重寫實現(xiàn)插入基于HTTP的路由(http,http4,jetty)的支持。 當您使用駱駝代理/橋接HTTP路由時,這使人們可以控制url映射。
例如,假設您需要代理一個舊式HTTP服務并插入一個映射URL的策略。 現(xiàn)在使用Camel 2.11更容易了。 在各種HTTP組件中添加了一個新的urlRewrite選項,用于插入自定義url重寫器。 例如,具有如圖所示的http代理路由,我們在http生產者端點上使用新的urlRewrite選項。
簡而言之,您可以通過實現(xiàn)UrlRewrite接口來實現(xiàn)自定義策略,如下所示。 由于這是來自單元測試,因此我們只將url中的yahoo替換為google(是的,這不是實際適用的示例)。
public class GoogleUrlRewrite implements UrlRewrite {@Overridepublic String rewrite(String url, String relativeUrl, Producer producer) {return url.replaceAll("yahoo", "google");} }在重寫方法中,Camel為您提供了絕對URL(例如,包括scheme:host:port / path?query)或相對URL,它是相對于路由中配置的uri的偏移量(請參見下文)。 但是,這一切都為您提供了控制URL映射的全部能力,甚至可以返回一個新的絕對URL。 如果返回null,則使用默認策略,即1:1 url映射。 不僅如此,還有一個新的組成部分
引入新的camel-urlrewrite組件
新的camel-urlrewrite組件是基于UrlRewriteFilter項目的新url重寫插件的實現(xiàn)。 該項目為將重寫策略指定為規(guī)則提供了強大的支持,并使其引擎評估了這些規(guī)則。
例如,我們可以在URL重寫XML配置文件中包含N +條規(guī)則。 在下面的示例中,我們有一條規(guī)則來重寫url以適應使用JSP的舊系統(tǒng)。
<urlrewrite><rule><from>/products/([0-9]+)</from><to>/products/index.jsp?product_id=$1</to></rule></urlrewrite> 該項目甚至支持Apache mod_rewrite樣式,該樣式允許您定義規(guī)則,就像使用Apache HTTP服務器一樣。 盡管如果您不熟悉mod_rewrite樣式,則它的樣式密集且需要一些時間來理解-但功能非常強大。 所有這些都在帶有示例的camel-urlrewrite組件頁面上進行了記錄。 而且,如果您想尋找更多,那么檢查單元測試源代碼也是了解更多信息的好方法。 我鼓勵您看一下新的camel-urlrewrite頁面,因為它包含完整的示例和更多詳細信息,這是我在此簡短博客中概述的內容。
參考: Camel 2.11 –來自我們的JCG合作伙伴 Claus Ibsen在Apache Camel博客的Claus Ibsen上的具有URL重寫功能的HTTP代理路由 。
翻譯自: https://www.javacodegeeks.com/2013/01/camel-2-11-http-proxy-routes-with-url-rewriting-functionality.html
總結
以上是生活随笔為你收集整理的Camel 2.11 –具有URL重写功能的HTTP代理路由的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 安卓还是苹果好(安卓还是苹果)
- 下一篇: DDOS测量墙(测试ddos墙)