连接SQL Server数据库,出现了
javax.naming.NoInitialContextException: Cannot instantiate class: com.sun.jndi.fscontext.RefFSContestFactory [Root exception is java.lang.ClassNotFoundException: com.sun.jndi.fscontext.RefFSContestFactory]
at javax.naming.spi.NamingManager.getInitialContext(Unknown Source)
at javax.naming.InitialContext.getDefaultInitCtx(Unknown Source)
at javax.naming.InitialContext.addToEnvironment(Unknown Source)
at SQLServerJDBCTest.getDataSourceConnection(SQLServerJDBCTest.java:55)
at SQLServerJDBCTest.main(SQLServerJDBCTest.java:142)
异常,fscontext.jar;jndi.jar;dns.jar和providerutil.jar已经导入到工程的类库里,而且在系统环境变量classpath里已经加上类路径了。代码如下:
private Connection getDataSourceConnection(){
try{
JtdsDataSource dataSource = new JtdsDataSource();
dataSource.setServerName("127.0.0.1");
dataSource.setDatabaseName("members");
dataSource.setUser("sa");
dataSource.setPassword("1");
Context ctx = new InitialContext();
ctx.addToEnvironment(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.fscontext.RefFSContestFactory");
ctx.addToEnvironment(Context.PROVIDER_URL,"file:C:/naming");
String nameOfDataSource = "MyDataSource";
ctx.rebind(nameOfDataSource, dataSource);
System.out.println(ctx.lookup(nameOfDataSource)+ "is bound with "+ nameOfDataSource);
con = dataSource.getConnection();
if(con!=null)
System.out.println("Connection Successful!");
}catch(Exception ex){
ex.printStackTrace();
System.out.println("Error Trace in getConnection() : " + ex.getMessage());
}
return con;
}
javax.naming.NoInitialContextException: Cannot instantiate class: com.sun.jndi.fscontext.RefFSContestFactory [Root exception is java.lang.ClassNotFoundException: com.sun.jndi.fscontext.RefFSContestFactory]
at javax.naming.spi.NamingManager.getInitialContext(Unknown Source)
at javax.naming.InitialContext.getDefaultInitCtx(Unknown Source)
at javax.naming.InitialContext.addToEnvironment(Unknown Source)
at SQLServerJDBCTest.getDataSourceConnection(SQLServerJDBCTest.java:55)
at SQLServerJDBCTest.main(SQLServerJDBCTest.java:142)
异常,fscontext.jar;jndi.jar;dns.jar和providerutil.jar已经导入到工程的类库里,而且在系统环境变量classpath里已经加上类路径了。代码如下:
private Connection getDataSourceConnection(){
try{
JtdsDataSource dataSource = new JtdsDataSource();
dataSource.setServerName("127.0.0.1");
dataSource.setDatabaseName("members");
dataSource.setUser("sa");
dataSource.setPassword("1");
Context ctx = new InitialContext();
ctx.addToEnvironment(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.fscontext.RefFSContestFactory");
ctx.addToEnvironment(Context.PROVIDER_URL,"file:C:/naming");
String nameOfDataSource = "MyDataSource";
ctx.rebind(nameOfDataSource, dataSource);
System.out.println(ctx.lookup(nameOfDataSource)+ "is bound with "+ nameOfDataSource);
con = dataSource.getConnection();
if(con!=null)
System.out.println("Connection Successful!");
}catch(Exception ex){
ex.printStackTrace();
System.out.println("Error Trace in getConnection() : " + ex.getMessage());
}
return con;
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货