使用 JBang 在本地运行 Camel K jdbc

问题描述 投票:0回答:1

我正在尝试使用以下配置在本地使用jdbc运行camel-k。

集成 DSL KamelKJdbcRouter.java:

import org.apache.camel.builder.RouteBuilder;

// camel-k: dependency=camel:jdbc
// camel-k: dependency=mvn:io.quarkus:quarkus-jdbc-postgresql

public class KamelKJdbcRouter extends RouteBuilder {

    @Override
    public void configure() throws Exception {
        from("timer://foo?period=10000")
                .setBody(constant("SELECT data FROM test LIMIT 5 OFFSET 0"))
                .to("jdbc:default")
                .to("log:info");
    }

}

应用程序属性:

quarkus.datasource.jdbc.url=jdbc:postgresql://postgres:5432/test
quarkus.datasource.username=postgresadmin
quarkus.datasource.password=admin123
quarkus.datasource.db-kind=postgresql

命令:

jbang run -Dcamel.jbang.version=4.2.0 camel@apache/camel run KamelKJdbcRouter.java

但是我收到以下错误:

Caused by: java.lang.IllegalArgumentException: No default DataSource found in the registry
        at org.apache.camel.component.jdbc.JdbcComponent.createEndpoint(JdbcComponent.java:67)
        at org.apache.camel.support.DefaultComponent.createEndpoint(DefaultComponent.java:170)
        at org.apache.camel.impl.engine.AbstractCamelContext.doGetEndpoint(AbstractCamelContext.java:804)
        ... 34 more

似乎 quarkus 构建没有启动并且数据源没有被创建。 该示例在 k8s 上运行良好。 我将camel-k与jbang和其他组件(如activemq)一起使用,它们工作得很好。

你有什么想法吗?谢谢!

apache-camel quarkus apache-camel-k
1个回答
0
投票

camel-jbang 不理解quarkus 特定的连接池等等。然而,这可能是我们可以添加到camel-jbang 中的一些常见功能,如数据库等。

您可以将通用数据源配置为 bean,并让camel-jbang 使用它,直到我们有适合camel-jbang OOTB 的东西为止。 https://issues.apache.org/jira/browse/CAMEL-20681

© www.soinside.com 2019 - 2024. All rights reserved.