java - org.apache.camel.FailedToStartRouteException: 无法启动路由 route1 因为 null
问题描述
我是apache骆驼的新手。我正在尝试使用 json,将其转换为 java 对象并将其写入带有管道分隔符的 CSV 文件。但是,我在尝试从另一个 api 的端点使用 json 时遇到错误。我正在使用 spring boot 来完成这个任务。
附上我正在尝试的示例代码。
@Component
public class HRFeedRoute extends RouteBuilder {
@Override
public final void configure() {
System.out.println("fetching employee details from employee api");
try {
from("http://localhost:8083/getEmployee").startupOrder(1).to("direct:employee")
.log("${body}");
from("direct:employee")
.unmarshal().json(JsonLibrary.Jackson, Employee.class)
.process(
ex -> {
System.out.println(ex);
});
} catch(Error e) {
System.out.println("Error occurred while processing employee data: "+e.getMessage());
}
}
}
org.apache.camel.FailedToStartRouteException: Failed to start route route1 because of null
at org.apache.camel.impl.engine.RouteService.warmUp(RouteService.java:125)
at org.apache.camel.impl.engine.InternalRouteStartupManager.doWarmUpRoutes(InternalRouteStartupManager.java:263)
at org.apache.camel.impl.engine.InternalRouteStartupManager.safelyStartRouteServices(InternalRouteStartupManager.java:156)
at org.apache.camel.impl.engine.InternalRouteStartupManager.doStartOrResumeRoutes(InternalRouteStartupManager.java:114)
at org.apache.camel.impl.engine.AbstractCamelContext.doStartCamel(AbstractCamelContext.java:2809)
at org.apache.camel.impl.engine.AbstractCamelContext.doStartContext(AbstractCamelContext.java:2657)
at org.apache.camel.impl.engine.AbstractCamelContext.doStart(AbstractCamelContext.java:2620)
at org.apache.camel.spring.boot.SpringBootCamelContext.doStart(SpringBootCamelContext.java:43)
at org.apache.camel.support.service.BaseService.start(BaseService.java:115)
at org.apache.camel.impl.engine.AbstractCamelContext.start(AbstractCamelContext.java:2452)
at org.apache.camel.spring.SpringCamelContext.start(SpringCamelContext.java:121)
at org.apache.camel.spring.SpringCamelContext.onApplicationEvent(SpringCamelContext.java:157)
at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172)
at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165)
at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139)
at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:404)
at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:361)
at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:898)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:554)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:143)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:758)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:750)
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:397)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:315)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1237)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1226)
at au.com.macquarie.hr.application.EmployeePackageBootApp.main(EmployeePackageBootApp.java:13)
Caused by: java.lang.UnsupportedOperationException: Cannot consume from http endpoint
解决方案
错误信息的最后一行是关键:
Caused by: java.lang.UnsupportedOperationException: Cannot consume from http endpoint
camel-http和camel-http4(对于 Camel 2.x)只能用作生产者,但不能用作消费者。
您需要使用例如可以使用 http 请求的骆驼码头。
推荐阅读
- java - Java 方法中的时间是如何设置的?
- scikit-learn - 使用经过缩放特征预训练的模型进行单次预测
- javascript - 如何使用 javascript 显示元素?
- javascript - 在 Vue Webpack 中禁用 Transpiler 以便于调试
- r - 注释每组的条形图中的百分比
- java - MySQL 存储过程代码 — “无名为‘CustomerID’的参数”
- odoo - 在odoo js构建仪表板中调用模型的特定表单视图
- crc32 - 循环码是什么意思?CRC 和 Reed-Solomon 循环码是什么?
- python-3.x - 如何在 Databricks 的异常消息中获取实际文件名?
- reactjs - 反应,打字稿,钩子。无法调用其类型缺少调用签名的表达式