【发布时间】:2016-12-29 20:27:52
【问题描述】:
您好,我正在尝试从连接池获取数据库连接。这是我用来获取连接的代码。我正在使用 maven 和 jersey 创建休息服务和 tomcat 8。
Context ctx;
DataSource ds = null;
try {
ctx = new InitialContext();
ds = (DataSource) ctx.lookup("java:/comp/env/jdbc/project");
} catch (NamingException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
但我遇到了异常
javax.naming.NameNotFoundException: Name [jdbc/project] is not bound in this Context. Unable to find [jdbc].
tomcat/conf/server.xml中写的资源代码
<GlobalNamingResources>
<!-- Editable user database that can also be used by
UserDatabaseRealm to authenticate users
-->
<Resource name="jdbc/project" global="jdbc/project" auth="Container"
type="javax.sql.DataSource" username="root" password="gaian"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost/project" maxActive="150"
maxWait="10000" initialSize="10"
factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
maxIdle="3"/>
tomcat/conf/context.xml中的代码
<ResourceLink name="jdbc/project"
global="jdbc/project"
type="javax.sql.DataSource"
/>
如何解决上述问题,请帮我解决这个问题
谢谢
【问题讨论】:
-
你已经在你的tomcat的context.xml中定义了资源?
-
不,我在 tomcat 的 server.xml 中定义了资源,在 context.xml 中定义了资源链接
-
任何日志文件中有任何内容吗?通常首先会出现错误导致资源无法创建。
-
不,我没有发现任何类似错误的东西
标签: java maven tomcat jdbc jersey