我正在尝试通过本机映像中的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
扩展名就足够了,但是显然没有正确选择。
答案 0 :(得分:0)
当前的情况是,仅当您具有使用Quarkus配置定义的数据源时,我们才为原始图像配置Agroal。
因此,对于您的用例,现在,您将必须手动执行我们自动执行的操作。我们正在注册一些类以进行反射,并在本机映像中包含一些资源。
请参见https://github.com/quarkusio/quarkus/blob/master/extensions/agroal/deployment/src/main/java/io/quarkus/agroal/deployment/AgroalProcessor.java#L91和https://quarkus.io/guides/writing-native-applications-tips#using-a-configuration-file。
显然,这并不理想。您能否在GitHub上打开一个问题,以便我们内部进行讨论,看看是否应该/可以改善这种情况?
最后,您仍然需要为JDBC驱动程序进行一些反射注册。