需要使用来自无上下文应用程序的weblogic中定义的jndi数据源

时间:2013-09-17 14:10:52

标签: java weblogic datasource jndi

我需要为我的应用程序编写weblogic数据源(JNDI),我有自己的Spring占位符,此时没有创建applicationcontext我无法从上下文获取数据源。

如何从weblogic programmatic获取数据源?

1 个答案:

答案 0 :(得分:0)

在Java代码中尝试这个,

Hashtable ht = new Hashtable(); 
ht.put(Context.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.WLInitialContextFactory");
ht.put(Context.PROVIDER_URL,"t3://localhost:7004,localhost:7005"); //cluster URL, if datasource deployed on cluster 
try{
    envContext = new InitialContext(ht);   // InitialContext();  
    DataSource ds = (DataSource)envContext.lookup("jdbc/MyDataSource"); //if using Weblogic 12c, then remove `jdbc/` and just give the name of DataSource
    con = ds.getConnection();
    //.. use connection
    con.close();
}
catch(SQLException e)           
{e.printStackTrace();}

并使用resource-ref

更新您的web.xml文件
<resource-ref>
    <description>DB Connection</description>
    <res-ref-name>MyDataSource</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
</resource-ref>