gpt4 book ai didi

java - Grails 中的 servletContext 在哪里可用?

转载 作者:搜寻专家 更新时间:2023-11-01 03:13:49 24 4
gpt4 key购买 nike

Grails 应用程序中的 servletContext 在哪里可用?我试图在 Config.groovy 中访问它,但没有成功。在 View 中访问它也是不可能的。

我想使用 storage = (File)servletContext["javax.servlet.context.tempdir"] 将临时目录设置为在我的开发和测试环境中存储上传文件的目录。

按照 Burt 的建议,我在 conf/Config.groovy 中尝试了以下操作:

environments {
production {
grails.serverURL = "http://demo.com"
}
development {
grails.serverURL = "http://localhost:8080/${appName}"
storageDir = org.codehaus.groovy.grails.web.context.ServletContextHolder
.getServletContext()["javax.servlet.context.tempdir"]
}
test {
grails.serverURL = "http://localhost:8080/${appName}"
}

}

...但是得到这个错误:

java.lang.NullPointerException: Cannot get property 'javax.servlet.context.tempd
ir' on null object
at Config$_run_closure1_closure4.doCall(Config.groovy:59)
at Config$_run_closure1_closure4.doCall(Config.groovy)
at Config$_run_closure1.doCall(Config.groovy:57)
at Config$_run_closure1.doCall(Config.groovy)
at Config.run(Config.groovy:53)
at _GrailsPackage_groovy$_run_closure1.doCall(_GrailsPackage_groovy:52)
at _GrailsPackage_groovy$_run_closure2_closure10.doCall(_GrailsPackage_g
roovy:93)
at _GrailsPackage_groovy$_run_closure2_closure10.doCall(_GrailsPackage_g
roovy)
at _GrailsSettings_groovy$_run_closure10.doCall(_GrailsSettings_groovy:2
80)
at _GrailsSettings_groovy$_run_closure10.call(_GrailsSettings_groovy)
at _GrailsPackage_groovy$_run_closure2.doCall(_GrailsPackage_groovy:92)
at RunApp$_run_closure1.doCall(RunApp.groovy:28)
at gant.Gant$_dispatch_closure5.doCall(Gant.groovy:381)
at gant.Gant$_dispatch_closure7.doCall(Gant.groovy:415)
at gant.Gant$_dispatch_closure7.doCall(Gant.groovy)
at gant.Gant.withBuildListeners(Gant.groovy:427)
at gant.Gant.this$2$withBuildListeners(Gant.groovy)
at gant.Gant$this$2$withBuildListeners.callCurrent(Unknown Source)
at gant.Gant.dispatch(Gant.groovy:415)
at gant.Gant.this$2$dispatch(Gant.groovy)
at gant.Gant.invokeMethod(Gant.groovy)
at gant.Gant.executeTargets(Gant.groovy:590)
at gant.Gant.executeTargets(Gant.groovy:589)
Failed to compile configuration file: Cannot get property 'javax.servlet.context
.tempdir' on null object

最佳答案

如果您使用的代码尚无法访问它,则可以使用 org.codehaus.groovy.grails.web.context.ServletContextHolder.getServletContext()

关于java - Grails 中的 servletContext 在哪里可用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4267065/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com