java - 使用 Apache Camel 描述 DynamoDB 表
问题描述
我正在尝试使用 Apache Camel aws2 DyanamoDB 组件。在那里面有一个操作DescribeTable
。我正在尝试。我有一个像这样的骆驼休息 API ->
.post("dynamodb-describe-table")
.route()
.process(new Processor(){
@Override
public void process(Exchange exchange) throws Exception {
exchange.getIn().setHeader("CamelAwsDdbTableName", "user");
}
})
.toD("aws2-ddb://user?accessKey=insert&secretKey=insert®ion=us-east-1&operation=DescribeTable")
.endRest();
此操作运行成功,但响应为空。为什么会这样?
解决方案
操作DescribeTable
不返回正文。所有属性都以Message
标题的形式返回。此操作返回的所有标头都列在AWS DynamoDB 文档中。
你有很多选择来创建身体,例如。与 MVEL:
.transform().mvel("{" +
"'tableSize': exchange.in.headers.CamelAwsDdbTableSize," +
"'status': 'exchange.in.headers.CamelAwsDdbTableStatus'" +
"}")
或者Processor
:
.process( exchange ->
exchange.getIn().setBody(
new HashMap<String, Object>(){{
put("tableSize", exchange.getMessage().getHeader("CamelAwsDdbTableSize"));
put("status", exchange.getMessage().getHeader("CamelAwsDdbTableStatus"));
// ...
}}
)
)
在你toD()
和之间endRest()
。
顺便说一句,我在您的 URI 中看不到任何动态部分,您应该可以使用 just to()
,这通常更快。
推荐阅读
- mysql - mysql count left join 奇怪的结果
- vb.net - 在 vb.net 中创建一个异步循环
- python - 在 google colab 中也显示日期时间 x 轴的鼠标位置
- dart - 我的颤振应用程序中不断出现这个黑屏
- mysql - MySQL 子查询从当前查询中的用户 ID 获取不同表中的用户名。如何?
- php - 如何在html之后设置标题
- html - CSS 类中没有任何鼠标操作
- javascript - 错误:使用 INFURA 时 JSON RPC 响应无效
- bash - 为什么我的 git shell 在我的笔记本电脑上看起来像这样:[name@name-Laptop ~ (master *+)]$,但在台式机上却没有
- aspose - Aspose.HTML - 将 HTML 渲染为图像