我試圖使用示例代碼這樣的做出一個oracle數據庫的連接:如何指定jdbc/DataSource?
public static Connection getConnection() throws ClassNotFoundException {
Class.forName("oracle.jdbc.driver.OracleDriver");
Properties env = new Properties();
//env.put(Context.INITIAL_CONTEXT_FACTORY, "com.ibm.websphere.naming.WsnInitialContextFactory");
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, "ldap://192.168.1.1:389/o=myo,dc=mydc,dc=us");
Connection connection = null;
try {
InitialContext context = new InitialContext(env);
DataSource dataSource = (DataSource) context.lookup("jdbc/DataSource");
connection = dataSource.getConnection();
} catch (NamingException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return connection;
}
但它總是拋出異常這樣的:
javax.naming.InvalidNameException: jdbc: [LDAP: error code 34 - invalid DN]; remaining name 'jdbc/DataSource'
在哪裏,我應該如何規定, JDBC /數據源?
我很困惑,因爲我得到了一個使用類似於上述代碼的工作項目,但沒有告訴DataSource是什麼。 我想知道如果jdbc/DataSource應該是LDAP中的DN,但我發現在我的給定ldap數據中沒有任何關係。對不起,如果這個問題是愚蠢的或沒有意義,我是新來的所有東西。
謝謝!
你在運行的環境是什麼?它是一個獨立的控制檯應用程序嗎?一個Web應用程序?你在某個應用程序服務器上運行嗎? – Olaf 2012-01-12 20:41:40
@Olaf,工作項目是在AIX中運行在websphere上的servlet。我使用OpenLDAP和Oracle在Windows中的控制檯應用程序中測試該代碼。目標是在Windows環境下在Websphere社區版中運行的Servlet中進行連接。 – John 2012-01-12 20:49:29