使用java中蓝图中定义的数据源访问oracle db

时间:2015-04-29 11:23:05

标签: java oracle database-connection apache-camel datasource

以下是我的数据源

<bean id="dataSource" class="oracle.jdbc.pool.OracleDataSource" destroy-method="close">
    <property name="URL" value="jdbc:oracle:thin:@${host}:${port}:${dbname}"/>
    <property name="user" value="${user}"/>
    <property name="password" value="${pass}"/>
</bean>
<service ref="dataSource" interface="javax.sql.DataSource">
    <service-properties>
        <entry key="osgi.jndi.service.name" value="jdbc/oracleds"/>
        <entry key="datasource.name" value="OracleDS"/> 
    </service-properties>
</service>
<bean id="LogToOracleDB" class="com.beans.LogToOracleDB">
    <property name="dataSource" ref="dataSource" />
</bean>

我想在名为LogToOracleDB

的bean文件中使用它
public class LogToOracleDB {
protected static DataSource dataSource;

public void test(Exchange exchange) throws SQLException {
      Connection con = dataSource.getConnection();
      Statement stmt = con.createStatement();
      ...............
}

我从datasource获取连接时获取空指针异常,因为它为null。有人可以帮我查找数据源吗?

1 个答案:

答案 0 :(得分:1)

dataSource = (DataSource)context.lookup(JNDIname);

你必须像这样使用,否则创建一个comboPool并尝试从那个