我正在尝试让 Spring 使用 tomcat JNDI 资源来访问我的数据库。如果我的项目中的 META-INF/context.xml 包含资源信息,我的项目就可以工作,但是一旦我删除它,它就会停止......为什么。
最佳答案
如果您在 Tomcat 中部署 Web 应用程序,在部署过程中,Tomcat 将复制 $CATALINA_HOME/conf/中的 META-INF/context.xml 文件,以便您的应用程序可以使用该上下文。请记住,如果您因为不需要而从应用程序中删除 context.xml,则还必须从 $CATALINA_HOME/conf/中手动删除它。
如果您已编辑 server.xml 以包含数据库资源,并且在删除 context.xml 时不起作用,则可能是因为您在 server.xml 中定义资源时犯了一些错误
更新:
当资源位于 server.xml 中时,在上下文中您应该引用 server.xml 中的全局资源。例如:
<Context crossContext="true" reloadable="true" >
<ResourceLink name="jdbc/myApp" type="javax.sql.DataSource" global="jdbc/myApp" />
</Context>
关于Spring 将 JNDI 与 Tomcat 结合使用...为什么我的项目中需要 META-INF/context.xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9843183/