如何在tomcat中访问文件

如何在tomcat中访问文件,tomcat,grails,Tomcat,Grails,我想将在g:select中使用的项目存储在一个文件中,以便在运行时读取。 到目前为止,我的解决方案是将相应的文件存储在我的项目根目录下,并通过 新文件(“myFile”)。java应用程序的每个{selectList当前文件夹对于run app和tomcat都是不同的。例如,您可以使用 new File('.').absolutePath 因此,这种方法可以是在config中设置路径-不同的用于生产,不同的用于开发,并使用 new File("${getPathFromConfig()}/$m

我想将在g:select中使用的项目存储在一个文件中,以便在运行时读取。 到目前为止,我的解决方案是将相应的文件存储在我的项目根目录下,并通过


新文件(“myFile”)。java应用程序的每个{selectList当前文件夹对于run app和tomcat都是不同的。例如,您可以使用

new File('.').absolutePath
因此,这种方法可以是在config中设置路径-不同的用于生产,不同的用于开发,并使用

new File("${getPathFromConfig()}/$myFile}")
此外,以对象格式将列表存储在应用程序的外部配置中可能更容易,因此您不需要读取文件,但可以在应用程序启动之前对其进行修改。请参阅

如果使用groovy config,则只需使用config选项:

my.list=['option1', 'option2', ...]
并在应用程序中使用

grailsApplication.config.my.list.each { ... }

希望这有助于首先在应用程序配置文件夹中创建一个目录。假设您已经创建了一个目录

conf_data.
secont现在在config.groovy文件中定义文件路径

app.demo.data.folder.location = "conf_data/demoData.xml"
最终使用

def demoDataFileLocation = new GroovyClassLoader(ConfigurationHolder.classLoader).getResource(grailsApplication.config.app.demo.data.folder.location).file.toString()

def demoDataRecords = new XmlParser().parse(demoDataFileLocation)

现在您在demoDatafileLocation中有了文件的路径,您可以随意使用

我使用了config.groovy方法,在config.groovy中有一行而不是一个文件。它在run app和Tomcata中工作得很好。另外一个问题是:我宁愿保持config.groovy不变(grails.config.location定义除外)因此,我想将Config.groovy末尾的列表定义放在我的应用程序中的一个单独文件中因此,我想将Config.groovy末尾的列表定义放在我的应用程序中的一个单独文件中看起来像,并且相应的文件应该放在我的应用程序中的什么位置。如果文件将在应用程序之外,您可以使用:def configLocations=[“文件:${userHome}/${appName}/${appName}-config.groovy”]并将文件放在linux上的/home/username/AppName/AppName-config.groovy或Windows上的c:\users\username\AppName\AppName-config.groovy,除了将配置行存储在单独的文件中之外。我刚刚发现grailsApplication.config在域类中不可用,这正是我需要的。我的第一次测试是在控制器中进行的.