내가 지금처럼 servletContextin에게 컨트롤러에 액세스하려고하지만, 널 포인터 예외가 계속 해요 : Grails는 2.0의 servletContext
def servletContext = getServletContext()
def serverPath = servletContext.getRealPath("/")
... 난 한 번에 단지 최근에 메일 링리스트에 그 문제를 건너했습니다, 그러나 제안 유일한 '적절한'해결 방법은 BootStrap.groovy의 초기화 폐쇄에서 설정하는 것이었다 :
import org.codehaus.groovy.grails.web.context.ServletContextHolder as SCH
class BootStrap {
def init = { servletContext ->
SCH.servletContext = servletContext
}
....
가 ...이 여전히 사건입니까? 그 솔루션은 나를 위해 어떤 차이를하지 않았다, 여전히 사전에 NPE
감사
가지고
... 흠, 그래서이 시도 : 컨트롤러에 ('/')의 servletContext DEF 데프 P = servletContext.getRealPath을 나는 "널 개체에 대한 방법 getRealPath()를 호출 할 수 없습니다"받을 이유가 될 것이다 ? – vector
servletContext는 로컬 변수가 아닌 필드로 선언되어야합니다. 즉, 조치 클로저/메소드 외부에 선언되어야합니다. – ataylor
.... owwww, 그런 뼈! 감사! – vector