1.测试WEBLOGIC 已配置好的JNDI连接ORACLE测试类:
public static void main(String[] args){
Connection con = getConnection();
System.out.println("con ==="+con);
}
public static synchronized Connection getConnection() {
Hashtable ht = new Hashtable();
try {
ht.put(Context.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.WLInitialContextFactory");
ht.put(Context.PROVIDER_URL,"t3://localhost:7001");
Context ctx = new InitialContext(ht);
DataSource ds = (DataSource) ctx.lookup("JNDI的名字");
return (ds.getConnection());
} catch(SQLException ex) {
return null;
} catch(NamingException ex) {
return null;
Hashtable ht = new Hashtable();
try {
ht.put(Context.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.WLInitialContextFactory");
ht.put(Context.PROVIDER_URL,"t3://localhost:7001");
Context ctx = new InitialContext(ht);
DataSource ds = (DataSource) ctx.lookup("JNDI的名字");
return (ds.getConnection());
} catch(SQLException ex) {
return null;
} catch(NamingException ex) {
return null;
}
}
2.TEST时报错:weblogic security subject abstractsubject
原因:经过查找分析后得知, AbstractSubject 类存在于 WebLogic Server 的server/lib/weblogic.jar 文件中,于是首先将其直接加入到当前 project 的 build path 中,然后再一次运行 JUnit Test,一切正常
解决:build path 中去掉该 jar 包,直接 run 当前的 project,发现也是一切正常。
由此可见,该weblogc.jar 文件仅仅是在 JUnit Test 的时候才能用得到,因此没有必要放置到 project 的 lib 目录中
注:当前的开发环境是 WebLogic 的 workshop (Eclipse)