【问题标题】:javax.naming.Reference cannot be cast to javax.sql.DataSource Errorjavax.naming.Reference 无法转换为 javax.sql.DataSource 错误
【发布时间】:2014-04-29 11:10:15
【问题描述】:

我正在使用 Apache Derby 并且有以下代码:

DBConnectionFactory.java

package edu.unsw.comp9321.jdbc;

import java.sql.Connection;
import java.sql.SQLException;
import java.util.logging.Logger;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;

import edu.unsw.comp9321.common.DataSourceException;
import edu.unsw.comp9321.common.ServiceLocatorException;

 // This class looks up the database via JNDI and returns a connection to the DAO Implementation class


public class DBConnectionFactory {

static Logger logger = Logger.getLogger(DBConnectionFactory.class.getName());
private static DBConnectionFactory factory = null;
private DataSource ds = null;
private InitialContext ctx;
private Context subctx;

private DBConnectionFactory() throws ServiceLocatorException{
    try{
        ctx = new InitialContext();
        ds = (DataSource) ctx.lookup("java:comp/env/jdbc/cs9321");
        logger.info("Database found:"+ds.toString());
    }catch(NamingException e){
        logger.severe("Cannot find context, throwing exception"+e.getMessage());
        e.printStackTrace();
        throw new ServiceLocatorException();
    }
}

public DataSource getDataSource(){
    return ds;
}

public static Connection getConnection() throws ServiceLocatorException, SQLException{

    if(factory==null)
        factory = new DBConnectionFactory();
    Connection conn = factory.getDataSource().getConnection();

    return conn;
}

}

错误似乎发生在这里:

ds = (DataSource) ctx.lookup("java:comp/env/jdbc/cs9321");

我了解到,如果derbyclient.jar 不在构建路径中,则可能会发生这种情况。但是,我已经将这个jar 添加到了构建路径中。

有人对我能做什么有任何建议吗?

谢谢。

【问题讨论】:

标签: java derby


【解决方案1】:

您缺少几个罐子,添加这两个,一切都应该没问题:

commons-dbcp-1.4.jar commons-pool-1.6.jar

希望有帮助!

干杯

【讨论】:

    猜你喜欢
    • 2017-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-31
    • 1970-01-01
    • 2022-01-20
    • 2014-02-03
    • 2021-08-21
    相关资源
    最近更新 更多