在即将发布的Apache Camel 2.11版本中,我最近添加了对将自定义url重写实现插入基于HTTP的路由(http,http4,jetty)的支持。 当您使用骆驼代理/桥接HTTP路由时,这使人们可以控制url映射。
例如,假设您需要代理一个旧式HTTP服务并插入一个映射URL的策略。 现在使用Camel 2.11更容易了。 在各种HTTP组件中添加了一个新的urlRewrite选项,用于插入自定义url重写器。 例如,具有如图所示的http代理路由,我们在http生产者端点上使用新的urlRewrite选项。

from("jetty:http://localhost:{{port}}/myapp?matchOnUriPrefix=true").to("jetty:http://somewhere:{{port2}}/myapp2?bridgeEndpoint=true&throwExceptionOnFailure=false&urlRewrite=#myRewrite");

简而言之,您可以通过实现UrlRewrite接口来实现自定义策略,如下所示。 由于这是来自单元测试,因此我们只将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重写插件的实现。 该项目为将重写策略指定为规则提供了强大的支持,并使其引擎评估了这些规则。

例如,我们可以在URL重写XML配置文件中包含N +条规则。 在下面的示例中,我们有一条规则来重写url以适应使用JSP的旧系统。

<urlrewrite><rule><from>/products/([0-9]+)</from><to>/products/index.jsp?product_id=$1</to></rule></urlrewrite>

该项目甚至支持Apache mod_rewrite样式,该样式允许您定义规则,就像使用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代理路由相关推荐

  1. camel.js_Camel 2.11 –具有URL重写功能的HTTP代理路由

    camel.js 在即将发布的Apache Camel 2.11版本中,我最近添加了对将自定义url重写实现插入基于HTTP的路由(http,http4,jetty)的支持. 当您使用骆驼代理/桥接H ...

  2. 关于Apache mod_rewrite的中文配置、使用和语法介绍(实现URL重写和防盗链功能)

    介绍和配置: 以数据库后台驱动的动态内容的网站,经常会遇到这些的问题: 当在浏览器的地址栏输入一个无效的参数时,会出现数据库的错误提示,这是一个安全的隐患 搜索引擎无法收录你的所有网页 网页的链接地址 ...

  3. 在 ASP.NET 中执行 URL 重写

    在 ASP.NET 中执行 URL 重写 发布日期: 8/23/2004 | 更新日期: 8/23/2004 Scott Mitchell 4GuysFromRolla.com 适用范围: Micro ...

  4. asp.net mvc、asp.net url重写 Url Rewrite

    最近在做一个cms手机网站,由于内容不是很多,很快做完了.空闲的时间考虑seo,想把url全部写成静态的.在查资料的时候,发现 UrlRewrite.Net这个组件非常的不错,尝试了下结果达到了理想的 ...

  5. thinkphp伪静态(url重写)

    1. 服务器开启url_rewrite功能,linux空间的php虚拟主机只需要开启apache的mod_rewriet,如果是iis6.0就要安装ISAPI Rewrite模块,apache只要开启 ...

  6. Bumblebee微服务网关之Url重写

    为了提高Url访问的统一和友好性,一般访问的Url和服务定义的Url有所不同;为了解决这一问题Bumblebee提供Url重写功能;通过Url重写功能可以在转发前进行一个重写后再转发到后台服务. 引用 ...

  7. java 重写session_关于session的实现:cookie与url重写

    本文讨论的语境是java EE servlet. 我们都知道session的实现主要两种方式:cookie与url重写,而cookie是首选(默认)的方式,因为各种现代浏览器都默认开通cookie功能 ...

  8. UrlRewritingNet 完美实现 ASP.NET 2.0 中的URL重写(映射)

    URL重写好处有很多,如有利于SEO.便于记忆.隐藏真实路径使安全性提高.便于更新等等.本文概要描述了各种URL重写的实现.   ASP.NET 2.0 中实现URL重写有很多方法,如:Global. ...

  9. UrlRewritingNet实现ASP.net 2.0中URL重写(映射)

    URL重写好处有很多,如有利于SEO.便于记忆.隐藏真实路径使安全性提高.便于更新等等.本文概要描述了各种URL重写的实现. ASP.NET 2.0 中实现URL重写有很多方法,如:Global.as ...

最新文章

  1. 我理解的--java 单例模式
  2. OpenCV直方图比较Histogram Comparison
  3. 即将放弃python的app_即将放弃Python 2.7的不止有Numpy,还有pandas和这些工具
  4. 一日一学:返回排序好的列表的索引顺序
  5. 45度做人 90度做事 180度为人 360度处事
  6. java中有scoreframe类型嘛_java构造函数的三种类型总结
  7. Spring Boot + JSP
  8. 网络分析仪-inSSIDer
  9. 5.3 Date类型
  10. 能写个简单的oa系统java_基于jsp的轻量级OA系统-JavaEE实现轻量级OA系统 - java项目源码...
  11. jQuery 文档操作方法 (四)
  12. 软件公司内部协作平台的选型(项目/BUG/需求管理及用户支持)
  13. SAP BAPI_SALESORDER_CREATEFROMDAT2 创建销售订单
  14. 实时下载速度的计算:
  15. 【python初级】os.listdir返回目录中包含的文件以及文件夹的列表
  16. 漳州帷博计算机科技,福建省漳州市芗城中学高二6月月考语文试题 含答案(11页)-原创力文档...
  17. 如何在VirtualBox上安装和安装Windows Home Server“ Vail” Beta
  18. 给SSD(固态硬盘)编程
  19. DSP快速复盘——时钟系统总结(基本知识+核心代码)基于TMS2802x处理器
  20. java面试笔试题50道及答案

热门文章

  1. HttpServletRequest中getAttribute()和getParameter()的区别
  2. python tkinter 背景色改变不了_python - Tkinter背景颜色问题 - 堆栈内存溢出
  3. 基础笔试编程题(jz)
  4. java 正则表达式 开头_如何在Java中修复表达式的非法开头
  5. java gradle构建_在Gradle中为JPMS构建Java 6-8库
  6. jhipster_JHipster入门,第2部分
  7. javafx动画_JavaFX动画工具
  8. 认证令牌_Java应用程序的令牌认证
  9. java不支持发行版本12_主要发行版本后Java开发人员应使用的15种工具
  10. jboss架构_检查Red Hat JBoss BRMS部署架构的规则和事件(第二部分)