写的类为:
package com.datasource;
import java.sql.Connection;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;
public class ConnectDataSource {
public ConnectDataSource(){
}
public static Connection connectDataSource(){
Connection conn = null;
try{
Context ctx = new InitialContext();
if(ctx==null){
System.out.println( "没有匹配的上下文环境 ");
}
DataSource ds = (DataSource)ctx.lookup( "java:comp/env/jdbc/myoracle ");
if(ds==null){
System.out.println( "没有匹配的数据库 ");
}
conn = ds.getConnection();
}catch(Exception e){
e.printStackTrace();
}
return conn;
}
public static void main(String[] str){
System.out.println( "conn= "+(new ConnectDataSource().connectDataSource()));
}
}
它始终报错为:
conn=null
javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:640)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:243)
at javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:280)
at javax.naming.InitialContext.lookup(InitialContext.java:347)
at com.datasource.ConnectDataSource.connectDataSource(ConnectDataSource.java:21)
at com.datasource.ConnectDataSource.main(ConnectDataSource.java:33)
package com.datasource;
import java.sql.Connection;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;
public class ConnectDataSource {
public ConnectDataSource(){
}
public static Connection connectDataSource(){
Connection conn = null;
try{
Context ctx = new InitialContext();
if(ctx==null){
System.out.println( "没有匹配的上下文环境 ");
}
DataSource ds = (DataSource)ctx.lookup( "java:comp/env/jdbc/myoracle ");
if(ds==null){
System.out.println( "没有匹配的数据库 ");
}
conn = ds.getConnection();
}catch(Exception e){
e.printStackTrace();
}
return conn;
}
public static void main(String[] str){
System.out.println( "conn= "+(new ConnectDataSource().connectDataSource()));
}
}
它始终报错为:
conn=null
javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:640)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:243)
at javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:280)
at javax.naming.InitialContext.lookup(InitialContext.java:347)
at com.datasource.ConnectDataSource.connectDataSource(ConnectDataSource.java:21)
at com.datasource.ConnectDataSource.main(ConnectDataSource.java:33)
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货