我只是嘗試從groovy閱讀grails配置。 ConfigSlurper
易於使用,但由於它執行配置,它需要所有的依賴關係。在我的情況下,它抱怨失蹤的log4j
類。 即使我將此類導入到我的ConfigSlurper
腳本中,配置本身也會遇到此問題。從groovy閱讀Grails配置
任何想法我怎麼可以使log4j
類訪問配置?
更新:現在,我在我的面前適當的鍵盤,我可以詳細說明我的問題:
我作爲文檔描述的配置log4j Grails的配置:
import org.apache.log4j.*
log4j = {
appenders {
appender new RollingFileAppender(
name: "myAppender",
maxFileSize: 1024,
file: "/tmp/logs/myApp.log"
)
}
}
然後我試圖分析它們是這樣的:
def file = new File(<config location>)
def config = new ConfigSlurper().parse(file.toURL())
和Slurper拋出一個異常...
如果你是超級對任何具有對log4j類的靜態引用的Groovy代碼(配置文件或其他),那些log4j類需要位於類路徑中。 –
這就是我雖然但無法解決的問題。我在groovyConsole中嘗試了我的腳本。在腳本中創建新的RollingFileAppender不是問題,但ConfigSlurper仍然抱怨。但是我發現了一個更好的方法來完全避免它在我的配置文件中......在當前的文檔中找到它。 – rdmueller
你說過「即使我把這個類導入到我的ConfigSlurper腳本中」。導入是不夠的。如果類在類加載器中不可用,那麼導入將不起作用,這通常意味着類路徑上可用。 –