Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从http获取数据_Java_Apache Camel - Fatal编程技术网

Java 从http获取数据

Java 从http获取数据,java,apache-camel,Java,Apache Camel,我是新来的阿帕奇骆驼。我正在尝试将此文件复制到文件夹中: 我得到一个错误: 主线程java.lang.UnsupportedOperationException中出现异常: 无法从http终结点使用 所以我知道我必须为它定义一个路由,但是我应该在什么文件中定义它,应该如何定义它 更新代码13.10.2017 13:06 要在camel中配置路由器,您可以查看camel提供的优秀示例以及github上的代码。此外,您的路由无效,首先uri端点sysntax错误,其次http或http4端点只能用作

我是新来的阿帕奇骆驼。我正在尝试将此文件复制到文件夹中:

我得到一个错误:

主线程java.lang.UnsupportedOperationException中出现异常: 无法从http终结点使用

所以我知道我必须为它定义一个路由,但是我应该在什么文件中定义它,应该如何定义它

更新代码13.10.2017 13:06


要在camel中配置路由器,您可以查看camel提供的优秀示例以及github上的代码。此外,您的路由无效,首先uri端点sysntax错误,其次http或http4端点只能用作生产者而不是消费者

您只能生成由HTTP组件生成的端点。 因此,决不能将其用作骆驼路线的输入

关于你的情况,请看一看。基本上你需要这样做

from("direct:start").setHeader(Exchange.HTTP_METHOD, constant("GET")) 
.to("https://www.dnb.no/portalfront/datafiles/miscellaneous/csv/kursliste_ws.xml")
.to("file:src/main/resources/data/inbox/?autoCreate=true");
from(timer).to(http).to(file);
然后调用直接端点

template.sendBody("direct:start", null);
或者你也可以像上面解释的那样使用计时器,然后像这样使用你的路线

from("direct:start").setHeader(Exchange.HTTP_METHOD, constant("GET")) 
.to("https://www.dnb.no/portalfront/datafiles/miscellaneous/csv/kursliste_ws.xml")
.to("file:src/main/resources/data/inbox/?autoCreate=true");
from(timer).to(http).to(file);

我没有任何名为template的变量。您是指上下文。sendBodydirect:start,null?可以使用ProducerTemplate=context.createProducerTemplate创建简单的ProducerTemplate;我用模板更新了代码,请参阅我的第一篇文章,然后我收到了以下错误:线程main org.apache.camel.CamelExecutionException中出现异常:在exchange上执行时发生异常:exchange[Message:[Body is null]]将主体设置为某个伪字符串。然后你进入路线,你可以清理尸体。该字符串仅用于触发路由。无论如何,我建议你不要把你的路线代码放在你的主方法中。为此有一个单独的RouteBuilder类。网上有很多例子说明了这一点。