因此,我尝试使用 GetResource 来引用战争中打包的文件,作为我的 grails 应用程序的一部分,使用:
grailsApplication.mainContext.getResource)
奇怪的是,如果我在 OSX 上使用“grails test war”构建它,它可以在 Elastic Beanstalk(Tomcat 7 32 位)上运行。但是,当 CI 服务器(在 Linux EC2 实例上运行的 TeamCity)使用相同的命令构建和部署它时,永远找不到资源。
我看过很多文章谈论某些环境如何无法解开战争,但我认为这不是问题,因为这是两个不同的战争被发送到相同的环境。一场战争有效,另一场无效
我检查过的事情:1)war文件的大小几乎相同,并且都在WEB-INF中有文件2)两台机器上的Java版本相似(JDK 1.6)3)我使用的是相同的版本两个(2.0.4)上的grails 4)我在两个上都使用相同的命令(grails test war)5)代码是相同的(都来自同一个git repo)
有什么想法吗?我读过我可以使用 GetResourceAsStream 但我正在使用一个回复物理文件的电子邮件插件。我每次都可以将流写入文件,但这并不是什么好选择。
任何人?