我可以在MuleESB连接器中请求MAP吗?

时间:2014-05-15 18:50:24

标签: java mule jersey-client

我正在使用Jersey编写自定义连接器,我需要创建一个@Processor,它将MultivaluedMap作为参数并将其传递给我的Jersey查询。

我希望我的@Connector能够拥有

@Processor
public String query(MultiValuedMap<String,String> params) {
    ...
    return webResource.queryParams(params).get(String.class);
}

然后xml.sample需要示例流声明,但我找不到如何声明参数

<!-- BEGIN_INCLUDE(myconnector:qry) -->
    <myconnector:qry params=" ??? " />
<!-- END_INCLUDE(myconnector:qry) -->

并且mule-config.xml需要真实的参数!

<flow name="testQuery">
    <myconnector:qry params=" ??? " />
</flow>

或者我可以简单地在泽西请求中插入一个字符串,如

@Processor
public String query(String paramString) {
    return webResource. ??? .get(String.class);
}

但如何将该字符串(“?age = 45&amp; language = en”)附加到查询网址?

2 个答案:

答案 0 :(得分:0)

看一下DevKit生成的XSD:这将提示您使用正确的XML语法将映射值传递给消息处理器。

答案 1 :(得分:0)

经过多次搜索,我得到了答案:

@Processor
Public void qry(List<String> param1,Map<String,String> param2) {
    ...
}

可以声明为

<!-- BEGIN_INCLUDE(myconnector:qry) -->
    <myconnector:qry>
        <myconnector:param1 ref="" />
        <myconnector:param2 ref="" />
    </myconnector:qry>
<!-- END_INCLUDE(myconnector:qry) -->