为什么我编译的时候出现这样一个信息数据源配置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以下是源代码package com.db;import java.sql.*;import javax.naming.*;import javax.sql.DataSource;public class DatabaseConn {public static synchronized Connection getConnection(){try{Context envCtx = new InitialContext();DataSource ds = (DataSource) envCtx.lookup("java:/test");//return ds.getConnection();return null;}/*catch (SQLException e){System.out.println("数据源配置发生错误" + e.toString());return null;}*/catch (NamingException e){System.out.println("数据源配置" + e.toString());return null;}}
參考答案:你的Context没有找到服务器,你应该用一个Hashtable表来告诉Context你的服务器在什么地方.
如
Hashtable env=new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.WLInitialContextFactory");
env.put(Context.PROVIDER_URL,"t3://localhost:7001");
Context ctx = new InitialContext(env);