我是Apache Camel的新成员。我试着去这个文件复制到文件夹:https://www.dnb.no/portalfront/datafiles/miscellaneous/csv/kursliste_ws.xmlCamel从http
我得到的错误:
Exception in thread "main" java.lang.UnsupportedOperationException: Cannot consume from http endpoint
package route;
import org.apache.camel.CamelContext;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.impl.DefaultCamelContext;
import org.apache.log4j.BasicConfigurator;
public class CurrencyRoute {
public static void main(String args[]) throws Exception {
// Log 4j
BasicConfigurator.configure();
// Create camel context
CamelContext context = new DefaultCamelContext();
// New route
context.addRoutes(new RouteBuilder() {
public void configure() {
from("https://www.dnb.no/portalfront/datafiles/miscellaneous/csv/kursliste_ws.xml")
.log("Read file")
.to("file:src/main/resources/data/inbox");
}
});
// start the route and let it do its work
context.start();
Thread.sleep(10000);
// stop the CamelContext
context.stop();
}
}
所以我知道我必须为它定义一个路线,但我应该在哪里把它定义(在什么文件??),以及如何定义?
更新代码2017年10月13日13:06
package route;
import org.apache.camel.CamelContext;
import org.apache.camel.Exchange;
import org.apache.camel.ProducerTemplate;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.impl.DefaultCamelContext;
import org.apache.log4j.BasicConfigurator;
public class CurrencyRoute {
public static void main(String args[]) throws Exception {
// Log 4j
BasicConfigurator.configure();
// Create camel context
CamelContext context = new DefaultCamelContext();
// Template
ProducerTemplate template = context.createProducerTemplate();
// New route
context.addRoutes(new RouteBuilder() {
public void configure() {
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");
}
});
// SendBody
template.sendBody("direct:start", null);
// start the route and let it do its work
context.start();
Thread.sleep(10000);
// stop the CamelContext
context.stop();
}
}
我没有任何名为“模板”的变量。你的意思是context.sendBody(“direct:start”,null); ? – Solo
您可以使用ProducerTemplate template = context.createProducerTemplate()创建一个简单的ProducerTemplate; – Shailendra
我用模板更新了代码(请参阅我的第一篇文章),然后我得到这个错误: 线程“main”org.apache.camel.CamelExecutionException中的异常:在Exchange上执行期间发生异常:Exchange [消息:[Body is null ]] – Solo