<分区>
您好,我有一个数据库连接类。此类是动态 Web 项目的一部分,我正在本地 tomcat 服务器上运行 Web 项目,并且我还尝试连接到 derby 服务器。我已经为 derby 和 tomcat 导入了所有外部文件,两台服务器都在运行。当我在这一行运行我的应用程序时,我一直失败
ds = (DataSource) ctx.lookup("java:/comp/env");
这些是我导入的包
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;
这是代码片段
public DatabaseConnection() throws ServiceLocatorException{
try{
ctx = new InitialContext();
System.out.println("We are trying to connect to the Derby server: ");
ds = (DataSource) ctx.lookup("java:/comp/env");
logger.info("Database found:"+ds.toString());
}catch(NamingException e){
logger.severe("Cannot find context, throwing exception"+e.getMessage());
e.printStackTrace();
throw new ServiceLocatorException();
}
}
我得到的异常是这个
java.lang.ClassCastException: org.apache.naming.NamingContext cannot be cast to javax.sql.DataSource
我不知道该怎么办。