Camel-基于HTTP请求内容的重定向

时间:2019-07-10 07:00:43

标签: apache-camel spring-camel spring-dsl camel-http

我正在尝试使用骆驼根据请求正文的内容重定向http请求。

我已经创建了一个用于接收http请求的终结点,并且能够使用以下路由将请求成功重定向到其他URL;

<route>
    <from uri="servlet:myapptest2?matchOnUriPrefix=true"/>  
    <to uri="http://sampleurl/test?bridgeEndpoint=true&amp;throwExceptionOnFailure=false" />
</route>

但是我无法找到一种检查http请求正文的方法。我的HTTP请求将具有与此相似的JSON正文;

{
    "testLoginRequest": {
            "sampleData1": [{
                    "key1": "val1",
                    "key2": "val2"          
            }],
            "sampleData2": [{
                    "key1": "val1",
                    "key2": "val2"
            }]
    }
}

如果JSON包含值“ testLoginRequest”,我想将请求重定向到特定的URL。 我读到,这应该是可能的;

from("direct:test"). 
    choice().
    when(body().contains("javainuse1"))
    .to("jms:queue:javainuse1").       
    otherwise().
    to("jms:queue:otherwise");

由于必须使用XML DSL,因此我尝试实现以下路由,但似乎不起作用;

<route>
    <from uri="servlet:myapptest3?matchOnUriPrefix=true" /> 
    <choice>
        <when>
            <simple>${body} contains 'testLoginRequest' </simple>
            <to uri="http://sampleurlforlogin/test?bridgeEndpoint=true&amp;throwExceptionOnFailure=false" />
        </when>                         
    </choice>
</route>

我遵循正确的方法吗?我在这里做什么错了?

0 个答案:

没有答案