问题描述
我需要使用传递给 REST 服务的参数来查询 Infinispan。 该应用程序基于 Apache Camel Quarkus 只要 InfinispanQueryBuilder 参数是硬编码的,以下代码就可以正常工作。 我不知道如何传递 Path 参数。作为记录,我已经检查过他们在那里
@ApplicationScoped
public class IbanDetailsRouter extends RouteBuilder {
@Override
public void configure() throws Exception {
restConfiguration().bindingMode(RestBindingMode.json);
rest("/sepaplus").get("/iban/{isoCountryCode}/{ibanNationalId}")
.outType(Iban.class)
.to("direct:ibanDetails");
from("direct:ibanDetails")
.log("country code = ${header.isoCountryCode} - iban national id = ${header.ibanNationalId}")
.setHeader(InfinispanConstants.OPERATION,constant(Infinispanoperation.QUERY))
.setHeader(InfinispanConstants.QUERY_BUILDER,constant(new InfinispanQueryBuilder() {
@Override
public Query build(QueryFactory queryFactory) {
return queryFactory.create("FROM sepaplus.Iban iban WHERE iban.ibanIsoCountryCode = :ibanIsoCountryCode "
+ "AND iban.ibanNationalId = :ibanNationalId")
.setParameter("ibanIsoCountryCode","CH")
.setParameter("ibanNationalId","08910");
}
}))
.to("infinispan:sepaplus-cache")
.log("Instance: ${body.get(0).getInstitutionName()}")
.transform().simple("${body.get(0)}");
}
}
非常感谢您的帮助
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)