如何在tomcat中访问文件

时间:2014-06-05 13:03:34

标签: tomcat grails

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

访问这些行

new File(“myFile”)。each {selectList<<它}

这种方法在我的ide中使用run-app工作正常。但是当我生成war并将其部署到tomcat时,文件未部署,访问它的唯一方法是在部署后将其手动移动到CATALINA_HOME / bin。

我知道这是新手的方式,而不是专业的。

我确信有更好的方法,请告诉我。

彼得 多特蒙德,德国

2 个答案:

答案 0 :(得分:0)

java应用程序的当前文件夹对于run-app和tomcat是不同的。您可以使用

打印它
new File('.').absolutePath

所以方法可能是在配置中设置路径 - 生产不同,开发不同,用

创建文件
new File("${getPathFromConfig()}/$myFile}")

此外,以对象格式将列表存储在应用程序的外部配置中可能更容易,因此您不需要读取文件,但可以在应用程序启动之前对其进行修改。见this

如果你使用groovy配置,那么你可以使用配置选项:

my.list=['option1', 'option2', ...]

并使用

在应用程序中阅读
grailsApplication.config.my.list.each { ... }

希望这会有所帮助

答案 1 :(得分:0)

首先在app配置文件夹中创建一个目录。假设您已创建目录

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中找到文件的路径,您可以根据需要使用