首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Camel Olingo2解析URI?

Camel Olingo2解析URI?
EN

Stack Overflow用户
提问于 2016-09-17 05:00:31
回答 1查看 315关注 0票数 0

我正在尝试运行一条到OData服务的驼峰Olingo2路由,带有顶部、格式和过滤器参数,但是Olingo组件没有对参数进行编码,所以它抛出了一个URISyntaxException,如果我在调用组件之前对参数进行编码,那么参数将作为无效参数返回,有没有办法在Olingo2组件中使用过滤器参数?

示例:

路由示例

代码语言:javascript
复制
from("timer://camelpoll?period=120000")
    .id("PersonPoll")
    .log("CAMEL_POLLING_IN_PROGRESS")
    .setHeader("CamelOlingo2.$top", constant("5"))
    .setHeader("CamelOlingo2.$format", constant("json"))
    .setHeader("CamelOlingo2.$filter", constant("Timestamp gt datetime'2014-06-26T03:30:00.000'"))
    .to("olingo2://read/Persons");

错误日志

代码语言:javascript
复制
Caused by: java.lang.IllegalArgumentException: Illegal character in query at index 131: https://<hostname>/Persons/?$top=5&$filter=Timestamp gt datetime'2014-06-26T03:30:00.000'&$format=json
    at java.net.URI.create(URI.java:852) ~[na:1.8.0_45]
    at org.apache.http.client.methods.HttpGet.<init>(HttpGet.java:69) ~[httpclient-4.5.2.jar:4.5.2]
    at org.apache.camel.component.olingo2.api.impl.Olingo2AppImpl.read(Olingo2AppImpl.java:190) ~[camel-olingo2-api-2.17.1.jar:2.17.1]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_45]
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_45]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_45]
    at java.lang.reflect.Method.invoke(Method.java:497) ~[na:1.8.0_45]
    at org.apache.camel.util.component.ApiMethodHelper.invokeMethod(ApiMethodHelper.java:461) ~[camel-core-2.17.1.jar:2.17.1]
    ... 13 common frames omitted
Caused by: java.net.URISyntaxException: Illegal character in query at index 131: https://<hostname>/Persons/?$top=5&$filter=Timestamp gt datetime'2014-06-26T03:30:00.000'&$format=json
    at java.net.URI$Parser.fail(URI.java:2848) ~[na:1.8.0_45]
    at java.net.URI$Parser.checkChars(URI.java:3021) ~[na:1.8.0_45]
    at java.net.URI$Parser.parseHierarchical(URI.java:3111) ~[na:1.8.0_45]
    at java.net.URI$Parser.parse(URI.java:3053) ~[na:1.8.0_45]
    at java.net.URI.<init>(URI.java:588) ~[na:1.8.0_45]
    at java.net.URI.create(URI.java:850) ~[na:1.8.0_45]
    ... 20 common frames omitted
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-22 00:28:35

嗯,看起来olingo2组件有一个问题,所以我必须创建一个自定义组件来实现这一点。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39540002

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档