我是apache camel的新手。我正在尝试使用json,将其转换为java对象,并将其写入CSV文件(带有管道分隔符)。但是,我在尝试使用另一个api端点的json时遇到错误。我正在使用spring Boot 来完成此任务。附上了我正在尝试的示例代码。第一个
gjmwrych1#
错误消息的最后一行是关键字:
Caused by: java.lang.UnsupportedOperationException: Cannot consume from http endpoint
camel-http和camel-http4(适用于Camel 2.x)只能用作生成方,而不能用作使用方。例如,您需要使用camel-jetty,它可以使用http请求。
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()); } }
}
2条答案
按热度按时间gjmwrych1#
错误消息的最后一行是关键字:
camel-http和camel-http4(适用于Camel 2.x)只能用作生成方,而不能用作使用方。
例如,您需要使用camel-jetty,它可以使用http请求。
ubof19bj2#
我找到了答案。Jetty将公开一个端点URL,生产者将使用该URL发送json/消息。因此,在生产者中添加Jetty公开的端点URL。在pom.xml生产者中添加camel-jetty-starter依赖项:假设您知道restapi将如何向另一个api发布消息,因此,我只是共享了控制器中的postEntity代码。
在这个例子中,我们使用了一个新的URI,这个URI是一个新的URI,它表示了一个新的请求,一个新的请求。
消费者API路由器:
@Component 公共类HRFeedRoute扩展了路由构建器{
}