我正在尝试将 JNDI 与名为 CEDataSource 的自定义数据源一起使用。根据我对此的理解,我还必须创建一个自定义工厂。
所以我创建了一个自定义工厂,它将返回 CEDataSource 对象,但是现在当我尝试在 Java 中使用它时
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
// Look up our data source
CEDataSource ds = (CEDataSource)envCtx.lookup("jdbc/cePu");
Run Code Online (Sandbox Code Playgroud)
我收到异常 ClassCastException“CEDataSource 无法映射到 CEDataSource”。我将 CEDataSource 和 CEDataSourceFactory 添加到 TOMCAT/lib 文件夹,并在我部署的应用程序中引用了同一个 jar。
关于为什么会发生这种可能的错误的任何帮助将不胜感激。谢谢
“CEDataSource 无法映射到 CEDataSource”似乎表明它在两个地方都不是相同的“CEDataSource”。
可能不同的是类加载器,如果您在多个位置具有相同的 jars/.class(es),通常会发生这种情况。
你的jar有多个副本吗?尝试拥有一个副本,也许在共享的 tomcat 库中,因此无论您从何处访问它,它都会由同一个类加载器加载。
| 归档时间: |
|
| 查看次数: |
1158 次 |
| 最近记录: |