Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么DB2Type4JDBC驱动程序在寻找本机库db2jcct2?_Java_Jdbc_Db2 - Fatal编程技术网

Java 为什么DB2Type4JDBC驱动程序在寻找本机库db2jcct2?

Java 为什么DB2Type4JDBC驱动程序在寻找本机库db2jcct2?,java,jdbc,db2,Java,Jdbc,Db2,我认为Type4JDBC驱动程序是纯Java的,不需要本机库 当我将db2jcc4.jar放入打包为.war文件的Tomcat应用程序的WEB-INF/lib目录中时,我在尝试使用该应用程序时遇到以下错误:get-SQLException:com.ibm.db2.jcc.am.SQLException:[jcc][10389][12245][4.12.55]加载本机库db2jcct2、java.lang.unsatifiedlinkerror失败 相关应用程序代码如下所示,由于清单中的最后一行,

我认为Type4JDBC驱动程序是纯Java的,不需要本机库

当我将db2jcc4.jar放入打包为.war文件的Tomcat应用程序的WEB-INF/lib目录中时,我在尝试使用该应用程序时遇到以下错误:
get-SQLException:com.ibm.db2.jcc.am.SQLException:[jcc][10389][12245][4.12.55]加载本机库db2jcct2、java.lang.unsatifiedlinkerror失败

相关应用程序代码如下所示,由于清单中的最后一行,引发了异常:

        import com.ibm.db2.jcc.DB2SimpleDataSource;

        // ...

        DB2SimpleDataSource main_db2_data_source = new DB2SimpleDataSource();
        main_db2_data_source.setUser(main_database_user);
        main_db2_data_source.setPassword(main_database_password);
        main_db2_data_source.setServerName(main_database_host);
        try {
          Integer main_database_port_integer = Integer.parseInt(main_database_port);
          main_db2_data_source.setPortNumber(main_database_port_integer);
        } catch (NumberFormatException exception) {
          throw new WebException("...");
        }
        Connection main_connection = null;
        try {
          main_connection = main_db2_data_source.getConnection();

我怀疑问题在于您没有告诉它使用类型4驱动程序——我相信,同一个jar文件同时包含类型4和类型2驱动程序

尝试:


db2驱动程序需要另一个包含许可证的jar


此许可证控制连接类型。如果要使用“DB2Connect”作为i系列连接到大型机,则应使用相应的许可证。如果您要连接到Linux UNIX或Windows服务器,那么当您获得“

许可证时,许可证就会包括在内。最近,当我从Glassfish服务器连接到DB2时,我遇到了这个问题。为此,我遵循了以下步骤并解决了此问题。 请检查以下步骤

步骤1)我已经检查了Domain.xml文件中的DB2详细信息 用户名、pwd、数据库名、服务器名、端口号,但我没有看到DriverType。 表示驾驶员类型为2或4

2) 为了添加驱动程序类型,我已登录到Glassfish服务器管理控制台

资源-->JDBC-->连接池-->我们的池名--。添加额外属性

在这里,我添加了drivertype为4

于是我的问题就解决了

谢谢, 拉迈亚·皮拉拉。

也可以试试这个:

Goto Configure Build Path --> Libraries 
                             --> JRE System Libraries 
                                --> Native Library Location : Set this to %DB2HOME%/BIN 
                             (which is where db2jcct2.dll is saved)

谢谢,这不是问题所在,因为我没有连接到大型机,但在将来的某个时候,我需要连接,你的建议会很有用。
Goto Configure Build Path --> Libraries 
                             --> JRE System Libraries 
                                --> Native Library Location : Set this to %DB2HOME%/BIN 
                             (which is where db2jcct2.dll is saved)