如何使用 rest DSL 在 Apache Camel Route 中设置 InfinispanQueryBuilder 参数

问题描述

我需要使用传递给 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 (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...