找不到Tomcat context.xml中的DataSource

时间:2018-02-01 18:50:14

标签: eclipse tomcat context.xml

我目前正在尝试了解Tomcat配置,但我在使用Eclipse时遇到了问题。

我在Eclipse上运行Tomcat 9服务器上的Dynamic Web项目。我没有使用Maven,因为这增加了一层我不完全理解的层。

我基本上想在项目中添加一个连接池,以便使用DataSource工厂访问我的数据库。为此,我在WebContent / META-INF /中添加了一个context.xml。它看起来像这样:

<Context path="/my-app" docBase="my-app" debug="99">
<Ressource
    name="jdbc/postgres"
    auth="Container"
    type="javax.sql.DataSource"
    description="Pool"
    driverClassName="org.postgresql.Driver"
    url="jdbc:postgresql://localhost:5432/my-app"
    username="blabla"
    password="blabla"
    maxTotal="4"
    maxIdle="2"
    maxWaitMillis="10000"
/>
</Context>

代码中的某处我使用此资源:

Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup( "java:comp/env" );
DataSource ds = (DataSource) envCtx.lookup( "jdbc/postgres" );
Connection con = ds.getConnection();

不幸的是,第3行引发了NameNotFoundException,称名称jdbc/postgres未链接到上下文。

所以我阅读了很多关于此的文档,但无法找到原因。我是否将此context.xml文件放在Eclipse中的错误位置?

我尝试添加

  <resource-ref>
    <res-ref-name>jdbc/postgres</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
  </resource-ref>

在我的WEB-INF / web.xml中我取得了一些进展,但又有了一个例外:

Cannot create JDBC driver of class '' for connect URL 'null'

我尝试过的其他方法是在前面调用带有java:的JNDI资源,但它没有帮助:

DataSource ds = (DataSource) envCtx.lookup( "java:jdbc/postgres" );

欢迎任何关于我做错事的想法。

非常感谢。

0 个答案:

没有答案