【问题标题】:How to get a context.xml working with Tomcat and IntelliJ IDEA如何使用 Tomcat 和 IntelliJ IDEA 获取 context.xml
【发布时间】:2019-07-30 01:21:01
【问题描述】:

我一直在学习连接池,并且通过using Tomcat's PoolProperties 找到了一个。现在我想使用 Tomcat 和 IntelliJ 的 context.xml 文件进行设置,但我无法让它工作。这是怎么做到的?

4.0 Web 应用程序框架的新项目可以自动创建带有 web.xml 文件的 web/WEB-INF 目录,但不会创建包含 context.xml 文件的 web/META-INF 目录。如果我自己通过 Tool Window > Project 创建 web/META-INF/context.xml,并使用它来设置如下所示的连接池,则该文件似乎被忽略了。

这是我对可能发生的事情的猜测,尽管我确信这充满了错误:WAR 文件是一个打包目录,它以 Tomcat 理解的方式发送到 Tomcat。 web/WEB-INF/web.xml 是一个必需的文件,有多种原因需要它,其中之一是设置 servlet。 web/META-INF/context.xml 是可选的,因此默认情况下,IntelliJ 不会创建它。当手动创建 web/META-INF/context.xml 时,它也必须包含在 WAR 文件中,否则 IntelliJ 不会将其发送到 Tomcat。

即使前面的段落是正确的,在尝试将其添加到 WAR 之后,我仍然没有让 Tomcat 使用 context.xml。也许我没有正确添加它。

context.xml

<?xml version="1.0" encoding="UTF-8" ?>
<Context>

    <Resource name="jdbc/sql_connection_03" auth="Container"
              driverClassName="com.mysql.jdbc.Driver"
              url="jdbc:mysql://localhost:3306/follow_db_01"
              username="root" password="pass"
              maxactive="100" maxIdle="30" maxWait="10000"
              logAbandoned="true" removeAbandoned="true"
              removeAbandonedTimeout="60" type="java.sql.DataSource"/>

</Context>

index.jsp

<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>

<sql:query var="rs" dataSource="jdbc/sql_connection_03">
    select ID, Description, PackageSize from products;
</sql:query>

<html>
  <head>
    <title>Index</title>
  </head>
  <body>

    <c:forEach var="row" items="${rs.rows}">
        ${row.ID}<br>
        ${row.Description}<br>
        ${row.PackageSize}<br>
    </c:forEach>

  </body>
</html>

【问题讨论】:

  • 我也有同样的问题...
  • @Jack J:你解决这个问题了吗?
  • 我建议查看 IntelliJ 创建的 WAR 文件。 Mrty 猜测是您假设 META-INF 正确添加到 WAR,但您的假设是错误的。查看 Project->Artifacts 选项卡,查看添加到 WAR 中的内容。

标签: java tomcat intellij-idea connection-pooling context.xml


【解决方案1】:

我遇到了同样的问题,将上下文查找添加到我的 java 代码以使用 context.xml 中定义的资源完成了这项工作。

这是第一个接受的解决方案:Tomcat and JDBC connection pooling

仍然适用于 Tomcat 9.0.39

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-02-09
    • 1970-01-01
    • 1970-01-01
    • 2023-04-07
    • 2014-06-17
    • 2017-01-18
    • 2015-01-15
    • 2013-01-06
    相关资源
    最近更新 更多