0

嗨,我在 tomee.xml 文件和 web.xml 文件中配置数据源。这在我执行项目时可以正常工作,但是我实现了测试用例,当我在那里使用时我也需要使用它,然后它会给出异常 javax.naming.NoInitialContextException :需要在环境或系统属性中指定类名,或作为小程序参数,或在应用程序资源文件中:java.naming.factory.initial

这是我的 tomee.xml 文件

     <?xml version="1.0" encoding="UTF-8"?>
     <tomee>
       <Resource id="jdbc/mydb" type="DataSource">
             JdbcDriver com.mysql.jdbc.Driver    
             JdbcUrl jdbc:mysql://localhost:3306/test
             UserName root
             Password root    
             JtaManaged false   
             InitialSize 50 
             MaxActive 100
             MaxIdle 3
       </Resource>
     </tomee>

这段代码在 Servlet 中运行良好,但是当我在 java 类中编写时,它给出的异常是我用于访问的 java 类

     Context initContext = new InitialContext();
     Context envContext  = (Context)initContext.lookup("java:/comp/env");
     DataSource ds = (DataSource)envContext.lookup("jdbc/mydb");
     con = ds.getConnection();
4

1 回答 1

1

在 Servlet 环境中,您已经由 servlet 引擎设置了一个上下文。当您在这样的环境之外运行时,您需要自己设置上下文。

在此处查看示例

于 2013-08-07T13:01:09.423 回答