Config.groovy中的applicationContext

时间:2011-06-01 16:36:31

标签: grails groovy config

可以访问配置文件中的applicationContext吗?!

我要做的是获取应用的完整路径(服务器路径)!

我想要的是:

/usr/tomcat/myapp/web-inf

2 个答案:

答案 0 :(得分:1)

如果@ Ben的getRealPath()解决方案不能解决问题,请尝试根据catalina base属性拼凑绝对路径:

def path = System.getProperty("catalina.base") + 'relative/path/to/app'

答案 1 :(得分:0)

也许我误解了您的问题,但我想您正在尝试检索与此类似的网络应用程序的网址:http://localhost:8080/myawesomeappConfig.groovy有一个内置选项grails.serverURL,但这不会为您提供Web应用程序子上下文。结果将是http://localhost:8080。我不知道一个不同的选项,它也会为您提供完整的Web应用程序上下文URL。

或者,您始终可以在Grails控制器中使用这样的方法,为您提供完整的Web应用程序URL:

def getContextUrl(HttpServletRequest httpServletRequest) {
    String scheme = httpServletRequest.scheme
    String serverName = httpServletRequest.serverName
    int serverPort = httpServletRequest.serverPort
    String contextPath = httpServletRequest.contextPath

    def url = new StringBuilder()
    url <<= '://'
    url <<= serverName

    if(serverPort && serverPort != 80) {
        url <<= ':'
        url <<= serverPort
    }

    url.toString()
}
相关问题