这个问题在这里已经有了答案:
drivermanager无法在java 8升级后返回连接(1个答案)
一年前关门了。
我试图在JBoss6上部署的应用程序中获得ImpalaJDBC连接;下面是springbean(id1)的数据源定义。我在连接时遇到异常;请参考以下例外情况。
它发生在Java1.8版本中;如果我把它改成Java1.7,它可以正常工作。
只有当应用程序也尝试使用springbean(id2)连接到oracledb时,才会出现以下异常。如果未使用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>
1条答案
按热度按时间7xzttuei1#
你的url属性应该是
<property name="url" value="jdbc:oracle:thin:@localhost:1521:ORCL"></property>
不是用双斜杠