加载本机库 db2jcct2 失败

Posted

技术标签:

【中文标题】加载本机库 db2jcct2 失败【英文标题】:Failure in loading native library db2jcct2 【发布时间】:2019-06-17 10:35:11 【问题描述】:

我有一个使用 Cassandra 和 DB2 数据库的 Spring Boot 应用程序。 我将所需的配置添加到 application.yml 文件中。

注意:我的 Cassandra 和 DB2 数据库是远程的(不是本地的)。

这是我在 yaml 文件中的内容:

spring:
  datasource:
    url: jdbc:db2://myRemoteHost:portNumber/MyDBName
    username: username
    password: password
    driver-class-name: com.ibm.db2.jcc.DB2Driver

  jpa:
    properties:
      hibernate:
        dialect: org.hibernate.dialect.DB2Dialect

  data:
    cassandra:
      cluster-name: cluster name
      keyspace-name: keyspace name
      port: myPortNumber
      contact-points: host1.com
      username: username
      password: password

这是我在应用程序中使用的依赖项:

compile group: 'com.ibm.db2.jcc', name: 'db2jcc', version: 'db2jcc4'

当我运行应用程序时,出现以下错误:

    Caused by: com.ibm.db2.jcc.am.SqlException: [jcc][10389][12245][4.25.13] 
Failure in loading native library db2jcct2, java.lang.UnsatisfiedLinkError: 
no db2jcct2 in java.library.path:  ERRORCODE=-4472, SQLSTATE=null

【问题讨论】:

【参考方案1】:

您的应用程序似乎尝试使用类型 2 连接。你应该让它使用类型 4 之一。

Failure in loading native library db2jcct2, UnsatisfiedLinkError: ERRORCODE=-4472

【讨论】:

是的,应用程序使用的是类型 2 连接而不是类型 4。这是因为 build.gradle 文件中使用了一些依赖项。就我而言,我只是删除了这些依赖项,因为我不需要它们。在其他一些情况下,我们可以只排除连接依赖而不是删除整个依赖。

以上是关于加载本机库 db2jcct2 失败的主要内容,如果未能解决你的问题,请参考以下文章

I/O 错误:SSO 失败:未加载本机 SSPI 库

Flutter 应用加载动态库失败

Mediapipe 跟踪 AAR 构建失败:按架构过滤 AAR 本机库失败

Xamarin.Android Java绑定库运行时失败访问本机库

VC++ 解决dll库动态库加载失败问题(调用LoadLibrary加载失败)(附源码)

libGDX / roboVM:如何修复“已在另一个类加载器中加载的本机库libhfscompressor.dylib”?