簡體   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