日期:2014-05-17  浏览次数:20718 次

在项目中META INF下创建context.xml获得mysql数据库连接池(急。。。)
在项目中META INF下创建context.xml获得mysql数据库连接池,
<Context> 
<Resource name="jdbc/zwjtest" 
type="javax.sql.DataSource" driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&amp;characterEncoding=utf-8"
username="root" password="ZWJ" maxActive="10" maxIdle="10"
maxWait="-1"/>
 </Context> 


jdbc/zwjtest中的zwjtest是项目名称还是数据库名称?我在用测试类测试时
报错: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

DataSource ds = (DataSource) ctx.lookup("java:comp/env/jdbc/zwjtest");没有获得ds.....

------解决方案--------------------
jdbc/zwjtest是jndi名,

你试试
Context initCtx = new InitialContext();
Context ctx = (Context) initCtx.lookup("java:comp/env");
Object obj = (Object) ctx.lookup("jdbc/zwjtest");
DataSource ds = (javax.sql.DataSource)obj;
------解决方案--------------------
jdbc/zwjtest 这个就是相当于你给你自己的数据源起了一个名字,这段代码是要在你使用的服务器中也就是tomcat中的context.xml配置的 我是这么理解的 你看一下