为什么下面的代码抛出异常,同时使用数据源建立连接mysql到java

时间:2013-08-08 07:01:35

标签: java datasource

嗨我正在使用以下代码来创建使用数据源的连接,但是它给出了错误 javax.naming.NoInitialContextException:无法实例化类:org.apache.naming.java.javaURLContextFactory [根异常是java.lang.ClassNotFoundException:org.apache.naming.java.javaURLContextFactory] ​​

这是我在java类中的代码

             System.setProperty(Context.INITIAL_CONTEXT_FACTORY,
                 "org.apache.naming.java.javaURLContextFactory");
             System.setProperty(Context.URL_PKG_PREFIXES, 
                 "org.apache.naming");     
        Properties  properties = new Properties ();
        properties.setProperty("url", "jdbc:mysql://localhost:3306/test");
        properties.setProperty("maxActive", "10");
        properties.setProperty("maxIdle", "8");
        properties.setProperty("minIdle", "10");
        properties.setProperty("maxWait", "10");
        properties.setProperty("testOnBorrow", "true");
        properties.setProperty("username", "snefouser");
        properties.setProperty("password", "snefouser");
        properties.setProperty("validationQuery", "SELECT 1");
        properties.setProperty("removeAbandoned", "true");
        properties.setProperty("removeAbandonedTimeout", "1");
        properties.setProperty("logAbandoned", "true");

        InitialContext ic = new InitialContext();
        ic.createSubcontext("java:");
            ic.createSubcontext("java:/comp");
            ic.createSubcontext("java:/comp/env");
        ic.createSubcontext("java:/comp/env/jdbc");

   DataSource ds = BasicDataSourceFactory.createDataSource(properties);

    ic.bind("java:/comp/env/jdbc/mydb", ds);

1 个答案:

答案 0 :(得分:2)

Refer this link。你可能会得到解决方案。你正在使用哪个容器?你需要提供

System.setProperty(Context.INITIAL_CONTEXT_FACTORY,
             "org.apache.naming.java.javaURLContextFactory");

相应。

相关问题