我最近将正在开发的Web应用程序转移到运行64位Eclipse Helios(服务版本2)的新计算机上,并且正在使用Maven插件M2Eclipse。
我已经通过Eclipse部署在本地tomcat上,并且一切正常(或多或少),但是我想选择“不发布服务模块”选项,但是当我选择此选项时,我得到了错误:
log4j:ERROR Could not read configuration file from URL [file:/C:/butterfly/svn/trunk/micro/src/main/webapp/WEB-INF/classes/log4j.properties]. java.io.FileNotFoundException: C:\butterfly\svn\trunk\micro\src\main\webapp\WEB-INF\classes\log4j.properties (The system cannot find the file specified)
log4j.properties文件不存在,因为在我的src / main / resources中的源目录中-在构建时,它会被复制到target / WEB-INF / classes /。
Eclipse似乎将预期的目标目录与src目录混合在一起,因此找不到它。
我不确定这是否只是针对属性文件而发生,还是因为寻找所有已构建的资源而发生相同的问题。
我已经看到以下问题:
https://bugs.eclipse.org/bugs/show_bug.cgi?id=318449
http://www.eclipse.org/forums/index.php?t=msg&goto=661045&S=25bafd85b11e042c169ecf1752bfa479
但它们似乎略有不同或已经修复(“我的太阳神”是上周末的新下载)
任何人都经历过或知道如何解决?
从这里开始:“不发布的服务模块选项将执行它所说的。Web内容将直接从Dynamic Web Project的“ WebContent”文件夹中提供。自定义上下文用于使该项目的依赖项在Web应用程序的类加载器中可用” 。我希望eclipse在构建项目后能够模拟从WEB-INF / classes提供的每个类/资源文件(包括log4j.properties)。解决方法是,在WebContent内创建一个“ classes”文件夹,在此处复制log4j.properties文件,看看类加载器是否感到高兴?