數據庫連接。有很多方法可以解決我所知道的這個問題,但我總是得到這些失敗。線程「main」中的異常javax.naming.NoInitialContextException:無法實例化類
有這個java.naming.factory.internal
件事,想實例化oracle.aurora.jndi.ojds.OjdsInternalContentFactory
,這是失敗的:
Exception in thread "main" javax.naming.NoInitialContextException: Cannot instantiate class: oracle.aurora.jndi.ojds.OjdsInitialContextFactory [Root exception is java.lang.ClassNotFoundException: oracle.aurora.jndi.ojds.OjdsInitialContextFactory]
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:674)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:313)
at javax.naming.InitialContext.init(InitialContext.java:244)
at javax.naming.InitialContext.<init>(InitialContext.java:216)
at DB.DBConnector.OpenConnection(DBConnector.java:32)
at DB.DBConnector.OpenConnection(DBConnector.java:48)
at DB.Start.main(Start.java:22)
Caused by: java.lang.ClassNotFoundException: oracle.aurora.jndi.ojds.OjdsInitialContextFactory
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:348)
at com.sun.naming.internal.VersionHelper12.loadClass(VersionHelper12.java:72)
at com.sun.naming.internal.VersionHelper12.loadClass(VersionHelper12.java:61)
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:672)
... 6 more
這是我的計劃:
package DB;
import java.sql.*;
import java.util.Hashtable;
import javax.naming.*;
import javax.sql.DataSource;
public class DBConnector
{
private String username;
private String password;
Connection con = null;
public void setUsername(String u)
{
username=u;
}
public void setPassword(String p)
{
password=p;
}
public Connection OpenConnection() throws Exception
{
Hashtable env = new Hashtable();
env.put("java.naming.factory.initial", "oracle.aurora.jndi.ojds.OjdsInitialContextFactory");
env.put(Context.PROVIDER_URL,"ojds://thin:VAULAB2:1521:TLMSMP");
Context ctx = new InitialContext(env);
try
{
DataSource ds = (DataSource) ctx; //new InitialContext().lookup("DBconfig");
con = ds.getConnection(username,password);
return con;
}
finally
{
}
}
public Connection OpenConnection(String u, String p) throws Exception
{
username=u;
password=p;
return OpenConnection();
}
public void CloseConnection() throws Exception
{
if (con != null)
try { con.close(); } catch (SQLException e) { e.printStackTrace(); }
}
public DBConnector()
{
}
public DBConnector(String _username,String _password)
{
setUsername(username);
setPassword(password);
}
「根異常是。 java.lang.ClassNotFoundException:oracle.aurora.jndi.ojds.OjdsInitialContextFactory'。 請檢查包含oracle.aurora.jndi.ojds.OjdsInitialContextFactory的jar是否在類路徑 – RahulArackal