如何将UrlRewriter挂钩到Camel应用程序?

时间:2016-03-22 17:21:02

标签: apache-camel

在我的Camel应用中,我实施了一个网址重写器(请参阅本页末尾:http://camel.apache.org/urlrewrite.html

只有一个问题,我的UrlRewriter永远不会被调用。

如何将此重写器挂钩?

PS我使用以下Camel mvn依赖项:

    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-core</artifactId>
        <version>${camel.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-cxf</artifactId>
        <version>${camel.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-cxf-transport</artifactId>
        <version>${camel.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-http</artifactId>
        <version>${camel.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-spring</artifactId>
        <version>${camel.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-urlrewrite</artifactId>
        <version>${camel.version}</version>
    </dependency>

2 个答案:

答案 0 :(得分:0)

这里没有什么魔力。你定义了这个类并实现了UrlRewriter,很好。现在,路线必须使用它。

例如,来自doc:

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

答案 1 :(得分:0)

您定义了类,但是现在可以在使用bean名称调用rewriteurl之后在上下文中定义bean。

    SimpleRegistry registry = new SimpleRegistry();
    CamelContext ctx = new DefaultCamelContext(registry);

    try {
        registry.put("rewriterUrl", new RewriterUrl());

,您可以在路线中定义

.to("jetty:https://login?urlRewrite=#rewriterUrl")

对于我来说,这项工作对我是否有用。 再见