做简约头像网站,镇江网页设计师招聘,今天郑州新闻头条,产品网络推广的方法在即将发布的Apache Camel 2.11版本中#xff0c;我最近添加了对将自定义url重写实现插入基于HTTP的路由#xff08;http#xff0c;http4#xff0c;jetty#xff09;的支持。 当您使用骆驼代理/桥接HTTP路由时#xff0c;这使人们可以控制url映射。 例如#xff0c;假… 在即将发布的Apache Camel 2.11版本中我最近添加了对将自定义url重写实现插入基于HTTP的路由httphttp4jetty的支持。 当您使用骆驼代理/桥接HTTP路由时这使人们可以控制url映射。 例如假设您需要代理一个旧式HTTP服务并插入一个映射URL的策略。 现在使用Camel 2.11更容易了。 在各种HTTP组件中添加了一个新的urlRewrite选项用于插入自定义url重写器。 例如具有如图所示的http代理路由我们在http生产者端点上使用新的urlRewrite选项。 from(jetty:http://localhost:{{port}}/myapp?matchOnUriPrefixtrue).to(jetty:http://somewhere:{{port2}}/myapp2?bridgeEndpointtruethrowExceptionOnFailurefalseurlRewrite#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例如包括schemehostport / pathquery或相对URL它是相对于路由中配置的uri的偏移量请参见下文。 但是这一切都为您提供了控制URL映射的全部能力甚至可以返回一个新的绝对URL。 如果返回null则使用默认策略即11 url映射。 不仅如此还有一个新的组成部分 引入新的camel-urlrewrite组件 新的camel-urlrewrite组件是基于UrlRewriteFilter项目的新url重写插件的实现。 该项目为将重写策略指定为规则提供了强大的支持并使其引擎评估了这些规则。 例如我们可以在URL重写XML配置文件中包含N 条规则。 在下面的示例中我们有一条规则来重写url以适应使用JSP的旧系统。 urlrewriterulefrom/products/([0-9])/fromto/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