繁体   English   中英

WEB-INF中的资源异常

[英]weirdness with resources in WEB-INF

因此,我尝试使用GetResource引用战争中打包的文件,这是我的grails应用程序使用的一部分:

grailsApplication.mainContext.getResource) 

奇怪的是,如果我在OSX上使用“ grails test war”构建它,那么它可以在Elastic Beanstalk(Tomcat 7 32位)上运行。 但是,当它由CI Server(在Linux EC2实例上运行的TeamCity)使用相同的命令构建和部署时,永远找不到资源。

我看过很多文章都在谈论某些环境如何无法解决战争,但是我认为这不是问题,因为这是发送到SAME环境的两次不同的战争。 一种战争有效,另一种则没有

我检查过的内容:1)war文件的大小几乎相同,并且都在WEB-INF中包含文件2)两台计算机上的Java版本相似(JDK 1.6)3)我使用的是相同版本(2.0.4)上的grails的数量4)我在两者上都使用相同的命令(grails测试战争)5)代码是相同的(两者都来自相同的git repo)

有什么想法吗? 我读过我可以使用GetResourceAsStream,但我使用的是一个可回复物理文件的电子邮件插件。 我可以每次将流写到文件中,但这不是很多选择。

任何人?

为此,Grails有一个名为grailsResourceLocator的bean。 这将在开发环境和部署环境中均适用。 例:

package com.mrhaki.templates

import groovy.text.SimpleTemplateEngine

class MessageService {

    def grailsResourceLocator

    String template

    String followUpMessage(final String user, final String subject) {
        final Resource template = grailsResourceLocator.findResourceForURI(template)
        final Map binding = [user: user, subject: subject]
        final SimpleTemplateEngine templateEngine = new SimpleTemplateEngine()
        templateEngine.createTemplate(template.URL).make(binding)
    }
}

这个例子是从这里得到的

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM