带有http资源

时间:2017-10-24 14:46:18

标签: java apache-camel

Camel的XSLT组件有许多可配置的选项。根据文档,这些选项以

的形式添加到URI中
?option=value&option=value&...

但是,如果资源来自HTTP,则所有选项都将用作HTTP请求的查询字符串,然后被删除。来自XsltComponent.java:

// if its a http uri, then append additional parameters as they are part of the uri
if (ResourceHelper.isHttpUri(resourceUri)) {
    resourceUri = ResourceHelper.appendParameters(resourceUri, parameters);
}

和ResourceHelper.appendParameters():

if (!parameters.isEmpty()) {
    String query = URISupport.createQueryString(parameters);
    URI u = new URI(uri);
    u = URISupport.createURIWithQuery(u, query);
    parameters.clear();
    return u.toString();
}

XsltComponent中的注释让我觉得它按设计运行,但它似乎应该是一个非常常见的场景。有没有人找到解决这个问题的方法?我不想在本地复制资源,因为它们可能会发生变化。

作为参考,我在Spring Boot应用程序中使用Java DSL。

1 个答案:

答案 0 :(得分:0)

不是所有选项,只有xslt组件上没有选项的任何其他选项,例如,如果您有....?foo=bar,那么因为foo不是xslt组件上的选项,所以它被使用在http url中,因为您可能需要提供一些选项,以便能够访问资源。