我需要为我的应用程序编写weblogic数据源(JNDI),我有自己的Spring占位符,此时没有创建applicationcontext我无法从上下文获取数据源。
如何从weblogic programmatic获取数据源?
答案 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
<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>