gpt4 book ai didi

java - Apache Camel BindException : "Can' t Assign Requested Address"

转载 作者:行者123 更新时间:2023-12-01 16:53:44 24 4
gpt4 key购买 nike

我正在学习如何使用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();

}
}

我的 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") ;

}
}

报告的错误如下:“线程“main”java.net.BindException中出现异常:无法分配请求的地址”

有人可以帮忙吗?

谢谢

最佳答案

当用作使用者时,jetty 组件会创建一个 HTTP 服务器,监听 HTTP 请求,并与该请求创建交换。

换句话说,当你执行 from("jetty:http://cdn2.feefo.com/..") 时,你是在要求 jetty 使用网络接口(interface)创建一个 HTTP 服务器与“cdn2.feefo.com”关联:失败(好吧,我假设你的机器不是这个主机)

如果你想请求这个HTTP地址,你必须使用jetty(或http4组件)作为生产者。例如:

from("direct:check_xmlfeedback")
.to("jetty:http://cdn2.feefo.com/api/xmlfeedback?merchantidentifier=example-retail-merchant")
...

并使用以下方式调用您的路线:

context.getProducerTemplate().requestBody("direct:check_xmlfeedback", null);

如果你想定期轮询这个HTTP地址,你可以使用timer组件:

from("timer:check?period=5m")
.to("jetty:http://cdn2.feefo.com/api/xmlfeedback?merchantidentifier=example-retail-merchant")
...

关于java - Apache Camel BindException : "Can' t Assign Requested Address",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35669678/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com