基于 Informix JDBC 的 SSL 在 JBOSS 7 下不起作用

Posted

技术标签:

【中文标题】基于 Informix JDBC 的 SSL 在 JBOSS 7 下不起作用【英文标题】:SSl over Informix JDBC doesn't work under JBOSS 7 【发布时间】:2017-10-02 15:19:52 【问题描述】:

我想通过 SSL 使用我的 Informix JDBC 应用程序。 DBMS 是 Informix IBM 11.70。

我正在使用一个 spring-config.xml 文件,我在其中声明了数据源 bean:

<!-- Data source -->
<bean id="dataSource" class="com.sopra.datasource.CustomDataSource" init-method="init"
    destroy-method="close">
    <property name="url" value="$url" />
    <property name="driverClassName" value="$driverClassName" />
    <property name="username" value="$username" />
    <property name="password" value="$password" />
    <property name="removeAbandoned" value="true" />
    <property name="initialSize" value="20" />
    <property name="maxActive" value="30" />
</bean>

问题是,当我在 Tomcat 7 中部署我的应用程序时,一切正常(TCP 和 SSL 模式),但是,当我在 JBOSS 7.1 中部署它时,与 Informix 数据库的 SSL 连接模式不起作用!

在调试方面,我掌握的唯一信息如下:

应用端:

Caused by: com.informix.asf.IfxASFException: Attempt to connect to database server (my_server_ssl) failed.
    at com.informix.util.IfxErrMsg.getLocIfxASFException(IfxErrMsg.java:751) [jdbc-4.10.7.20160517.jar:4.1.0.SNAPSHOT]
    at com.informix.asf.Connection.openSocket(Connection.java:1864) [jdbc-4.10.7.20160517.jar:4.1.0.SNAPSHOT]
    at com.informix.asf.Connection.<init>(Connection.java:427) [jdbc-4.10.7.20160517.jar:4.1.0.SNAPSHOT]
    at com.informix.jdbc.IfxSqliConnect.<init>(IfxSqliConnect.java:1416) [jdbc-4.10.7.20160517.jar:4.1.0.SNAPSHOT]
    ... 47 more
Caused by: java.lang.NullPointerException
    at com.informix.asf.Connection.getEnabledSSLProtocols(Connection.java:2242) [jdbc-4.10.7.20160517.jar:4.1.0.SNAPSHOT]
    at com.informix.asf.Connection.openSocket(Connection.java:1805) [jdbc-4.10.7.20160517.jar:4.1.0.SNAPSHOT]
    ... 49 more

提前致谢。

【问题讨论】:

谁能帮帮我? 【参考方案1】:

这是由于 4.10.7 版本的驱动程序存在缺陷。尝试升级到 4.10.8 或 4.10.9 版本。可以通过 maven 或 IBM 下载站点找到它们。

Gradle

compile group: 'com.ibm.informix', name: 'jdbc', version: '4.10.9'

Maven

<dependency>
<groupId>com.ibm.informix</groupId>
<artifactId>jdbc</artifactId>
<version>4.10.9</version>
</dependency>

【讨论】:

非常感谢,布莱恩·休斯!

以上是关于基于 Informix JDBC 的 SSL 在 JBOSS 7 下不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Informix java.lang.ClassNotFoundException: com.informix.jdbc.IfxDirectConnection

informix jdbc 卡住了连接

试图找出 Informix JDBC 驱动程序无法安装的原因

如何通过 JDBC 显示 Informix sysprocedures.paramtypes 列?

如何使用 JDBC 使用 informix 的 genxmlquery 功能?

使用 Dataframes 从 Informix 到 Spark 的 JDBC