java.util.serviceconfigurationerror:org.firebirdsql.gds.impl.gdsfactoryplugin:从oracle中的java存储过程读取配置文件时出错

ovfsdjhp  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(466)

我用loadjava工具jaybird-3.0.9-jdk\u1.8jdbc驱动程序和java类加载到oracle数据库。所有类都已解决。当我第一次从oracle运行java存储过程时
错误ora-29532:java调用被未捕获的java异常终止:java.util.serviceconfigurationerror:org.firebirdsql.gds.impl.gdsfactoryplugin:读取配置文件时出错
当java应用程序创建连接时。
具有相同oracle连接的下一个调用将导致
ora-29532:java调用被未捕获的java异常终止:java.lang.noclassdeffounderror
重新连接后,我再次得到serviceconfigurationerror异常。同样的代码在java中也可以正常工作。有什么好主意吗?非常感谢

zxlwwiss

zxlwwiss1#

jaybird通过 java.util.ServiceLoader ,如果这不起作用,它将退回到一个固定的插件列表。不幸的是,在这种情况下 ServiceConfigurationError 在jaybird没有预料到的地方抛出,因此没有处理这个错误,结果导致类的加载 GDSFactory 已终止(导致后续 NoClassDefFoundError ).
根据您的问题,我不知道这到底是什么故障,但可以猜测,loadjava或oracle classloader似乎损坏了服务定义文件( META-INF/services/org.firebirdsql.gds.impl.GDSFactoryPlugin ),或在读取时导致异常。
我已经创建了bug jdbc-636,以便在jaybird的下一个版本:3.0.10、4.0.2和即将发布的jaybird5中处理这个异常。
只要jaybird3.0.10和4.0.2还没有发布,就可以从sonatype快照存储库中尝试3.0.10-snapshot或4.0.2.java8-snapshot(https://oss.sonatype.org/content/repositories/snapshots)使用maven或gradle。或者您可以直接从快照存储库下载jar(注意:当部署了较新的快照时,这些链接将中断):
3.0.10-快照(或查找https://oss.sonatype.org/content/repositories/snapshots/org/firebirdsql/jdbc/jaybird-jdk18/3.0.10-snapshot/)
4.0.2.java8-snapshot(或在https://oss.sonatype.org/content/repositories/snapshots/org/firebirdsql/jdbc/jaybird/4.0.2.java8-snapshot/)

相关问题