gpt4 book ai didi

eclipse - MyBatis 寻找 Tomcat 目录下的 xml 文件

转载 作者:行者123 更新时间:2023-11-29 00:01:23 25 4
gpt4 key购买 nike

我正在使用 Eclipse + Tomcat 测试 Web 应用程序,Eclipse 部署 Web 应用程序文件并启动 Tomcat,应用程序运行良好。但是当 MyBatis 试图打开它的 XML 配置文件时,它会在

C:\Program Files\Apache Software Foundation\Tomcat 7.0\lib\persistence\db\oracle.xml

而不是正确的地方:

C:\workspace\mywebapp\src\persistence\db\oracle.xml

MyBatis 应该在哪里寻找 XML 文件?

编辑:

这是我指定相对路径的地方:

String cfgFile = "persistence/db/oracle.xml";
Reader reader = Resources.getResourceAsReader(cfgFile);
session.put(db, new SqlSessionFactoryBuilder().build(reader));

最佳答案

Resources.getResourceAsReader 在类路径中查找文件。对于在 tomcat 中运行的 Web 应用程序,类路径包括 WEB-INF/classes 和来自 WEB-INF/lib 的所有 jar 和 tomcat 文件夹,如 $TOMCAT_HOME\lib

您遇到的问题很可能是由于 oracle.xml 文件未添加到部署中引起的。看起来 c:\workspace\myweapp\src 不在 eclipse 项目的源文件夹中,因此 eclipse 不会将文件从它复制到部署到 tomcat 的文件夹中。根据您现有的项目结构,您可能需要在 src 中创建子文件夹,并在其中添加所有子文件夹的 persistence。如果 src 的某些子文件夹已经是 eclipse 中的源文件夹,这将允许您避免冲突。我建议使用 maven project structure :

src
main
* java
you java source code here organized by package
* resources
persistence

我用 * 标记了应该作为源文件夹添加到 eclipse 的文件夹。

请注意,说 C:\workspace\mywebapp\src\persistence\db\oracle.xml 是搜索它的正确位置是不正确的。在您创建 war 以将其部署到生产环境之后,这条路径很可能在您的生产服务器上不可用。你真正需要的是在适当的地方(在WEB-INF/classes下)将persistence\db\oracle.xml包含到war中。

关于eclipse - MyBatis 寻找 Tomcat 目录下的 xml 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25684604/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com