我用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中也可以正常工作。有什么好主意吗?非常感谢
1条答案
按热度按时间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/)