【问题标题】:Unable to get Impala JDBC connection with Java 1.8 [duplicate]无法获得与 Java 1.8 的 Impala JDBC 连接 [重复]
【发布时间】:2019-04-15 14:50:39
【问题描述】:

我正在尝试在部署在 Jboss 6 上的应用程序中获取 impala jdbc 连接; 下面是相同的 spring bean (ID1) 数据源定义。连接时出现异常;请参阅下面的例外情况。

它发生在 Java 1.8 版本中;如果我将其更改为 Java 1.7,它可以正常工作。

仅当应用程序还尝试使用 spring bean (ID2) 连接到 Oracle DB 时,才会发生以下异常。如果不使用Oracle连接ID2,则impala连接成功。

有人可以帮忙吗?

例外:

==java.lang.NullPointerException
===Stack trace...
java.util.Hashtable.put(Unknown Source)
com.cloudera.jdbc.common.AbstractDriver.copyProperties(Unknown Source)
com.cloudera.jdbc.common.AbstractDriver.connect(Unknown Source)
java.sql.DriverManager.getConnection(Unknown Source)
java.sql.DriverManager.getConnection(Unknown Source) org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFrom 
DriverManager(DriverManagerDataSource.java:173) org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFrom 
Driver(DriverManagerDataSource.java:164) org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.getConnect onFromDriver(AbstractDriverBasedDataSource.java:149) org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.getConnection(AbstractDriverBasedDataSource.java:119) org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:111) org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:77)

我尝试调试成AbstractDriver.copyProperties(),属性中的值如下-

{user=myuser, password=pwd}

在 Spring-config.xml 中定义的 bean

<bean id="ID1" 
class="org.springframework.jdbc.datasource.DriverManagerDataSource">

<property name="driverClassName" 
value="com.cloudera.impala.jdbc41.Driver" />

<property name="url" value="jdbc:impala://impalahost:21050/;AuthMech=1;KrbRealm=myrealm;KrbServiceName=impala;KrbHostFQDN=xxx" />

</bean>

<bean id="ID2" 
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" 
/>
<property name="url"
value="jdbc:oracle:thin:@//oraclehost:1523/DB" />
<property name="username" value="myuser" />
<property name="password" value="pwd" />
<property name="connectionProperties">
<props>
<prop key="defaultRowPrefetch">5000</prop>
</props>
</property>
</bean>

【问题讨论】:

    标签: spring jdbc java-8 impala jboss-eap-6


    【解决方案1】:

    你的 url 属性应该像 &lt;property name="url" value="jdbc:oracle:thin:@localhost:1521:ORCL"&gt;&lt;/property&gt; 而不是双斜杠

    【讨论】:

    • 尝试删除斜线;没有帮助。问题是即使应用程序尝试使用 ID2 的 bean 引用连接到 Oracle;在例外情况下,它指的是 cloudera impala 驱动程序 - com.cloudera.jdbc.common.AbstractDriver.copyProperties(Unknown Source)
    猜你喜欢
    • 2016-04-21
    • 2023-03-09
    • 2019-05-11
    • 2016-10-28
    • 2018-10-29
    • 1970-01-01
    • 1970-01-01
    • 2015-07-31
    • 1970-01-01
    相关资源
    最近更新 更多