iam*_*mat 0 java apache apache-camel
我正在学习如何使用Camel.我遇到以下代码片段的问题:
@SpringBootApplication
public class FeefooExampleApplication {
public static void main(String[] args) throws Exception {
SpringApplication.run(FeefooExampleApplication.class, args);
CamelContext camelContext = new DefaultCamelContext();
camelContext.addRoutes(new CamelConfig());
camelContext.start();
Blah blah = new Blah();
blah.getFeefoData();
}
}
Run Code Online (Sandbox Code Playgroud)
我的CamelConfig类如下:
package com.example.camel;
import com.example.feefo.FeedbackProcessor;
import org.apache.camel.builder.RouteBuilder;
public class CamelConfig extends RouteBuilder {
private FeedbackProcessor feedbackProcessor = new FeedbackProcessor();
@Override
public void configure() throws Exception {
from("jetty:http://cdn2.feefo.com/api/xmlfeedback?merchantidentifier=example-retail-merchant")
.convertBodyTo(String.class)
.bean(feedbackProcessor, "processFeedback") ;
}
}
Run Code Online (Sandbox Code Playgroud)
报告的错误如下:'线程中的异常"main"java.net.BindException:无法分配请求的地址'
有人能帮忙吗?
谢谢
当用作使用者时,该jetty组件创建HTTP服务器,侦听HTTP请求,并使用此请求创建交换.
换句话说,当你这样做时from("jetty:http://cdn2.feefo.com/.."),你要求jetty创建一个HTTP服务器,其网络接口与"cdn2.feefo.com"相关联:这失败了(好吧,我假设你的机器不是这个主机)
如果要请求此HTTP地址,则必须使用jetty(或http4组件)作为生产者.例如:
from("direct:check_xmlfeedback")
.to("jetty:http://cdn2.feefo.com/api/xmlfeedback?merchantidentifier=example-retail-merchant")
...
Run Code Online (Sandbox Code Playgroud)
并拨打您的路线:
context.getProducerTemplate().requestBody("direct:check_xmlfeedback", null);
Run Code Online (Sandbox Code Playgroud)
如果要定期轮询此HTTP地址,可以使用该timer组件:
from("timer:check?period=5m")
.to("jetty:http://cdn2.feefo.com/api/xmlfeedback?merchantidentifier=example-retail-merchant")
...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
918 次 |
| 最近记录: |