java - NamingContext 无法转换为数据源?

标签 java tomcat derby

<分区>

您好,我有一个数据库连接类。此类是动态 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

我不知道该怎么办。

最佳答案

我希望您已经在 web.xml 中添加了 resource-ref 条目。

此外,在您的 Web 应用程序中,您确实包含了 META-INF/context.xml 文件。

关于java - NamingContext 无法转换为数据源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23052288/

相关文章:

derby - 无法为我的嵌入式数据库设置身份验证和授权

java:将图标放入 .jar 文件中以便 Windows 资源管理器可以识别它们?

javascript - 使用 websocket 在浏览器和 java SE 项目之间传递数据

java - 使用 JAX-RS 响应类返回实体时出现异常

java - 如何获取我的 WSDL 的 URL?

java - 这是内存泄漏吗?超过 400.000 个无法访问的 org.apache.derby.impl.store.raw.data.StoredRecordHeader 实例

java - 有效的Java项目7 : Avoid Finalizers

java - 使用 libphonenumber 时使用 Iterator.next() 获取 java.util.NoSuchElementException

apache - Tomcat缓慢加载一个大脚本

sql - Derby 中的内联临时表(如 DB2)