gpt4 book ai didi

java - Camel REST Bean 链接

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:41:47 25 4
gpt4 key购买 nike

我目前有一个 REST 路由构建器,如下所示:

rest("/v1")
.post("/create")
.to("bean:myAssembler?method=assemble(${in.header.content})")
.to("bean:myService?method=create(?)");

bean myAssembler 获取原始 JSON 并将其转换为 MyObject。然后返回此对象,我希望将其转发到 myService 作为其创建方法的参数。

我如何使用 Camel 做到这一点?

最佳答案

如果您将 bean 作为方法的参数(请参阅完整列表 Parameter binding),您的 bean 将自动绑定(bind)到特定参数,例如 Exchange。

一种解决方案是像这样定义您的路由和 bean:

restConfiguration()
.component("restlet")
.bindingMode(RestBindingMode.json)
.skipBindingOnErrorCode(false)
.port(port);

rest("/v1")
.post("/create")
.route()
.to("bean:myAssembler?method=assemble")
.to("bean:myService?method=create");

像这样的 bean

public class MyAssembler {
public void assemble(Exchange exchange) {
String content = exchange.getIn().getHeader("content", String.class);
// Create MyObject here.
MyObject object; // ...transformation here.
exchange.getOut().setBody(object);
}
}

还有这个

public class MyService {
public void create(MyObject body) {
// Do what ever you want with the content.
// Here it's just log.
LOG.info("MyObject is: " + body.toString());
}
}

显示配置的依赖项是

org.apache.camel/camel-core/2.15.3
org.apache.camel/camel-spring/2.15.3
org.apache.camel/camel-restlet/2.15.3
javax.servlet/javax.servlet-api/3.1.0
org.apache.camel/camel-jackson/2.15.3
org.apache.camel/camel-xmljson/2.15.3
xom/xom/1.2.5

关于java - Camel REST Bean 链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32565267/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com