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。
答案 0 :(得分:0)
不是所有选项,只有xslt组件上没有选项的任何其他选项,例如,如果您有....?foo=bar
,那么因为foo
不是xslt组件上的选项,所以它被使用在http url中,因为您可能需要提供一些选项,以便能够访问资源。