spring - Apache骆驼动态路由
问题描述
我关注 Apache 骆驼休息服务(/sales),它在内部调用另一个休息服务(/getOrders)并获取对象列表。我能够在处理器中打印 JSON 响应,但在尝试从邮递员那里获取 java 对象作为响应。谁能帮我解决这个问题。附上响应日志以供参考。
@Component
public class ApplicationResource extends RouteBuilder {
@Autowired
private OrderService service;
@BeanInject
private OrderProcessor processor;
@Override
public void configure() throws Exception {
restConfiguration().component("servlet").port(9090).host("localhost");
rest().get("/getOrders").produces(MediaType.APPLICATION_JSON_VALUE).route().setBody(() -> service.getOrders());
rest().get("/sales").produces(MediaType.APPLICATION_JSON_VALUE).route()
.setHeader(Exchange.CONTENT_TYPE, constant("application/json"))
.toD("http://localhost:9090/getOrders?bridgeEndpoint=true").convertBodyTo(String.class).marshal()
.json(JsonLibrary.Jackson, Order.class).to("log:foo?showHeaders=true");;
;
}
}
解决方案
您应该删除“direct:bye”路线上的最后一个 .endRest()。我认为您在致电处理器之前会得到其余的响应。
推荐阅读
- jupyter - 如何通过 kubeflow 部署 jupyterHub
- sap-dotnet-connector - 将“IDOCTYPE_READ_COMPLETE”转换为“RfcRepository”[.Net 连接器 3]
- sql-server - 如何获得每个季度的运行总计,而不是重复值为 0。使用 SQL Server 2012
- jenkins - 詹金斯没有检测到 Mercurial 存储库
- symfony - 如何使用返回带有状态的 json 的外部 post 调用登录 symfony
- vba - 使用 VBScript 发送电子邮件,但将已发送项目保留为未读?
- c# - 在部署目标上创建文件夹/目录
- ruby-on-rails - Searchkick 聚合或
- git - Apache 在另一个分支上无法正常工作
- c# - 本地化 ASP.NET Core 2.2 不适用于视图模型和视图