0

我正在开发一个 spring 项目,我刚刚在 junit 中加载 XML 配置文件时遇到了严重问题(但它们可以从 Web 控制器访问) - 无法加载 XML 文件。

我列出了我的类路径(在 junit 测试中),发现其中包括 2 个目录:

/var/www/Java/lyricsBase/build/web/WEB-INF/classes/
/var/www/Java/lyricsBase/build/test/classes/

我只想在测试中包含一个文件:

  • /WEB-INF/lyricsBaseApp-servlet.xml

它导入以下 3 个文件:

  • /WEB-INF/hibernate.xml
  • /WEB-INF/dataSource.xml
  • /WEB-INF/beans.xml

我可以清楚地看到,在 tomcat 上部署我的项目会将 confg 文件复制到/var/www/Java/lyricsBase/build/web/WEB-INF/ABC.xml但该目录不在类路径中,/var/www/Java/lyricsBase/build/web/WEB-INF/classes而是包含在内。我读到 WEB-INF 不应该在类路径中(这只是 Java EE 原则)。好的 - 那么我应该把我的配置文件放在哪里,以便从 web 控制器和 junit 测试中轻松访问它们?有什么好的做法吗?

4

2 回答 2

2

将配置文件放在war包的WEB-INF/classes下,它们将被加载到类路径中。考虑将您的代码部署为一场爆炸式战争,以便可以轻松更改配置文件。

还可以考虑使用 maven war 项目进行打包。如果你这样做了,你可以把你的配置文件放在源代码下的 src/main/resources 下,它们会被打包到 WEB-INF/classes 中。

于 2013-02-19T01:13:08.440 回答
1

我遇到了同样的问题,从那时起开始将它们放在 META-INF 下的资源中。这是不在 Tomcat 中运行的 spring 模板项目放置它们并且似乎解决了我的问题的地方。

于 2013-02-18T23:41:29.523 回答