Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法将javax.naming.Reference转换为javax.sql.DataSource错误_Java_Derby - Fatal编程技术网

无法将javax.naming.Reference转换为javax.sql.DataSource错误

无法将javax.naming.Reference转换为javax.sql.DataSource错误,java,derby,Java,Derby,我使用的是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 java

我使用的是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
添加到构建路径中

有人对我能做什么有什么建议吗


谢谢。

你少了几个罐子,加上这两个,一切都会好起来的:

希望有帮助


干杯

请检查此链接中的解决方案是否有帮助