如何在运行时通过本机支持建立Agroal连接

我正在尝试通过本机映像中的Agroal建立动态数据库连接。无法使用默认的配置参数,因为我在编译时不知道连接参数。现在有可能吗? 连接是在运行时建立的:

AgroalDataSource.from(
    AgroalDataSourceConfigurationSupplier()
      ...)

我当前看到此错误:

Class io.agroal.pool.ConnectionHandler[] is instantiated reflectively but was never registered. 
Register the class by using org.graalvm.nativeimage.hosted.RuntimeReflection

已安装的功能包括:[agroal,cdi,jdbc-h2,jdbc-mysql,jdbc-postgresql,kotlin,narayana-jta,resteasy,resteasy-jackson]

它可以在JVM上正常运行,但不能使用Graal。感觉应该有可能,我可能在这里错过了一些东西。我希望添加agraol扩展名就足够了,但是显然没有正确选择。

lryup 回答:如何在运行时通过本机支持建立Agroal连接

当前的情况是,仅当您具有使用Quarkus配置定义的数据源时,我们才为原始图像配置Agroal。

因此,对于您的用例,现在,您将必须手动执行我们自动执行的操作。我们正在注册一些类以进行反射,并在本机映像中包含一些资源。

请参见https://github.com/quarkusio/quarkus/blob/master/extensions/agroal/deployment/src/main/java/io/quarkus/agroal/deployment/AgroalProcessor.java#L91https://quarkus.io/guides/writing-native-applications-tips#using-a-configuration-file

显然,这并不理想。您能否在GitHub上打开一个问题,以便我们内部进行讨论,看看是否应该/可以改善这种情况?

最后,您仍然需要为JDBC驱动程序进行一些反射注册。

本文链接:https://www.f2er.com/2935660.html

大家都在问