【问题标题】:javax.naming.NoInitialContextExceptionjavax.naming.NoInitialContextException
【发布时间】:2011-09-23 10:42:40
【问题描述】:

getConnection Exception javax.naming.NoInitialContextException: 需要在环境或系统属性中指定类名,或作为小程序参数,或在应用程序资源文件中:java.naming.factory.initial 空

当我在代码下面运行时,这是我得到的异常。

我已经在 glassfishv3 中创建了相应的 jndi 名称连接池 请给我任何解决方案....

谢谢..

import java.sql.Connection;
import java.sql.SQLException;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;

public class Test {

    /**
     * @param args
     */
    private static DataSource ds;

    private static Context initialContext = null;

    public static Connection getConnection()
    {
        try
        {
            initialContext = new InitialContext();
            ds = (DataSource) initialContext.lookup("jdbc/__TimerPool");
            System.out.println("data source "+ds);

                return ds.getConnection();


        }
        catch (Exception e)
        {
            System.out.println(("getConnection Exception " + e));
        }
        return null;
    }



    public static void main(String[] args) {
        System.out.println(Test.getConnection());

    }

}

【问题讨论】:

    标签: java jndi


    【解决方案1】:
    ds = (DataSource) initialContext.lookup("jdbc/__TimerPool");
    

    ds = (DataSource) initialContext.lookup("java:comp/jdbc/__TimerPool");

    编辑:对不起,“java:comp/env/jdbc/__TimerPool”。

    【讨论】:

    • “需要在环境或系统属性中指定类名,或作为小程序参数,或在应用程序资源文件中:java.naming.factory.initial....”同样的例外情况。 .
    • @MadhuB:所以你没有在容器环境中运行这段代码?
    • 我在 glassfish3.1 环境中运行它
    猜你喜欢
    • 1970-01-01
    • 2013-03-24
    • 2012-08-04
    • 1970-01-01
    • 2018-07-22
    • 2017-06-30
    • 1970-01-01
    • 2015-09-11
    • 1970-01-01
    相关资源
    最近更新 更多