我正在尝试使用我在weblogic服务器上设置的数据源。 datasource JNDI name = thinOracleDataSource
在我的代码中我有以下
public class DAOBean implements java.io.Serializable {
private Connection conn;
public void connect() throws ClassNotFoundException,
SQLException, NamingException {
Context ctx = new InitialContext();
// Lookup using JNDI name.
DataSource ds = (javax.sql.DataSource) ctx.lookup("thinOracleDataSource");
conn = ds.getConnection();
}
但是我收到了这个错误
javax.naming.NameNotFoundException: While trying to look up /thinOracleDataSource in /app/webapp/PreAssignment2/24911485.; remaining name '/thinOracleDataSource'
我正以正确的方式看待JNDI的名字吗?还是我错过了什么?谢谢你的帮助!!
编辑: 这是我可以从weblogic控制台获取的jndi树
答案 0 :(得分:3)
尝试在Weblogic中命名数据源jdbc/thisOracleDataSource
并将其引用为:
DataSource ds = (javax.sql.DataSource) ctx.lookup("jdbc/thinOracleDataSource");
此外,请确保数据源“定位”到您的weblogic Java服务器。所有这些都可以在Weblogic管理控制台中完成。
答案 1 :(得分:1)
您的JNDI密钥应该近似"java:comp/env/jdbc/thinOracleDataSource"
。
您可以使用允许在JNDI中访问(并可能搜索)的Weblogic控制台来验证它。因此,您可以在编写代码之前手动检查。