Java Tomcat:context.xml和web.xml为jndi资源配置

Java Tomcat:context.xml和web.xml为jndi资源配置,java,tomcat,jakarta-ee,tomcat7,tomcat8,Java,Tomcat,Jakarta Ee,Tomcat7,Tomcat8,我已经在网上浏览了几乎所有与web.xml/context.xml相关的问题,但是没有一个地方能对下面的问题给出足够清晰的答案。 表示web.xml中的resource ref标记等同于context.xml中的resource标记。 表示web.xml中的resource ref标记在context.xml中查找resource标记。现在这两个听起来很混乱,因为我提到的两个链接都是Tomcat文档链接,而且仍然有看似矛盾的语句。任何澄清都会非常有用。资源标签定义了资源,可以放在许多xml文件中

我已经在网上浏览了几乎所有与web.xml/context.xml相关的问题,但是没有一个地方能对下面的问题给出足够清晰的答案。 表示web.xml中的resource ref标记等同于context.xml中的resource标记。 表示web.xml中的resource ref标记在context.xml中查找resource标记。现在这两个听起来很混乱,因为我提到的两个链接都是Tomcat文档链接,而且仍然有看似矛盾的语句。任何澄清都会非常有用。

资源标签定义了资源,可以放在许多xml文件中,这些文件在很大程度上取决于部署首选项。首先,我将context.xml放在web应用程序的META-INF文件夹中。此目录在web应用程序中与web-INF文件夹处于同一级别,例如:-

META-INF/context.xml

<Context>
   <Resource name="jdbc/TestDB" auth="Container"  
              type="javax.sql.DataSource"
              driverClassName="com.mysql.jdbc.Driver"
              url="jdbc:mysql://localhost:3306/testdb"
              username="dbuser"
              password="dbpassword"
              maxTotal="20" maxIdle="10" maxWaitMillis="-1"/>
</Context>

以上内容使资源可用

resource ref标记用于引用资源,使其可用于应用程序。这可以放在web.xml文件中

WEB-INF/WEB.xml

<web-app>
    <!--- snipped -->
    <resource-ref>
        <description>Test DB Connection</description>
        <res-ref-name>jdbc/TestDB</res-ref-name>
        <res-type>javax.sql.DataSource</res-type>
        <res-auth>Container</res-auth>
    </resource-ref>
</web-app>

测试数据库连接
jdbc/TestDB
javax.sql.DataSource
容器

这两者都可以通过其他方式进行配置。我通常会选择这样的东西,然后涉猎。

谢谢克里夫,但这并不能让我清楚。您只重申了我提供的第二个链接中已经提到的内容。我希望澄清两个链接中提到的相互矛盾的声明之间的混淆。