我在使用tomcat 7配置jdbc-pool时遇到了一些问题:我试过这个例子:http://www.tomcatexpert.com/blog/2010/04/01/configuring-jdbc-pool-high-concurrency
所以我有:
CONF / server.xml中
<GlobalNamingResources>
<Resource type="javax.sql.DataSource"
name="jdbc/DB"
factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/mydb"
username="user"
password="password"
/>
</GlobalNamingResources>
CONF / context.xml中
<Context>
<ResourceLink type="javax.sql.DataSource"
name="jdbc/LocalDB"
global="jdbc/DB"
/>
<Context>
当我尝试这样做时:
Context initContext = new InitialContext();
Context envContext = (Context)initContext.lookup("java:/comp/env");
DataSource datasource = (DataSource)envContext.lookup("jdbc/LocalDB");
Connection con = datasource.getConnection();
我一直收到这个错误:
javax.naming.NameNotFoundException: Name jdbc is not bound in this Context
at org.apache.naming.NamingContext.lookup(NamingContext.java:803)
at org.apache.naming.NamingContext.lookup(NamingContext.java:159)
请帮助 TNX
答案 0 :(得分:3)
<Context> <ResourceLink type="javax.sql.DataSource" name="jdbc/LocalDB" global="jdbc/DB"/>
在context.xml中用name="jdbc/LocalDB"
替换name="jdbc/DB"
和
(DataSource)envContext.lookup("java:/comp/env/jdbc/DB");
[第二行代码是多余的]。
答案 1 :(得分:2)
更改server.xml中的以下行 使用type =“org.apache.tomcat.jdbc.pool.DataSource”而不是type =“javax.sql.DataSource”
并使用(DataSource)envContext.lookup(“java:/ comp / env / jdbc / LocalDB”)代替 DataSource)envContext.lookup(“java:/ comp / env / jdbc / DB”)在您的程序中,然后您将获得DBConnectoin。
答案 2 :(得分:1)
conf / server.xml和conf / context.xml ...
你在tomcat安装前缀里面有吗?在eclipse上,我在WebContent / META-INF中有我的上下文,在Server项目中有server.xml;在生成的war context.xml上有正确的META-INF最后,除了我不知道你在哪里放置context.xml之外,我还有你的配置。
另外,我也是@Henry建议的,但幸运的是你的问题只是context.xml的位置