Camel 无法启动路由异常:无法启动路由route1,因为为空

eagi6jfj  于 2022-11-07  发布在  Apache
关注(0)|答案(2)|浏览(283)

我是apache camel的新手。我正在尝试使用json,将其转换为java对象,并将其写入CSV文件(带有管道分隔符)。但是,我在尝试使用另一个api端点的json时遇到错误。我正在使用spring Boot 来完成此任务。
附上了我正在尝试的示例代码。
第一个

gjmwrych

gjmwrych1#

错误消息的最后一行是关键字:

Caused by: java.lang.UnsupportedOperationException: Cannot consume from http endpoint

camel-httpcamel-http4(适用于Camel 2.x)只能用作生成方,而不能用作使用方。
例如,您需要使用camel-jetty,它可以使用http请求

ubof19bj

ubof19bj2#

我找到了答案。Jetty将公开一个端点URL,生产者将使用该URL发送json/消息。因此,在生产者中添加Jetty公开的端点URL。在pom.xml生产者中添加camel-jetty-starter依赖项:假设您知道restapi将如何向另一个api发布消息,因此,我只是共享了控制器中的postEntity代码。
在这个例子中,我们使用了一个新的URI,这个URI是一个新的URI,它表示了一个新的请求,一个新的请求。
消费者API路由器:
@Component 公共类HRFeedRoute扩展了路由构建器{

@Override
public final void configure() {
    System.out.println("fetching employee details from employee api");
    try {

        from("jetty://http://localhost:8084/employee-package/getEmployee")
        .log("${body}")
        .unmarshal().json(JsonLibrary.Jackson, Employee.class)
        .process(
                ex -> {
                    Employee employee = (Employee) ex.getIn().getBody();
                    System.out.println("|"+employee.getEmpId()+" | "+employee.getName()+" | "+employee.getDesignation()+" | "+employee.getSalary());
                });

    } catch(Error e) {
        System.out.println("Error occurred while processing employee data: "+e.getMessage());
    }
}

}

相关问题