grails 3.1.13 guide에 따라 서비스 의존성을 컨트롤러에 추가하려하지만 어떻게 든 저에게 맞지 않습니다. Cannot get property 'serviceMethod' on null object.
에 대해 NullPointerException
을 던지고 있습니다. 아래에서 재현 단계를 언급하고 있습니다.서비스에서 컨트롤러로의 Grails 종속성 삽입이 작동하지 않습니다.
다음 실행 명령
grails create-app DepInjectionTest
grails create-controller com.abc.project.KpiReport
grails create-service com.abc.project.KpiReport
KpiReportService
@Transactional
class KpiReportService {
def serviceMethod() {
return "Hello from KpiReportService"
}
}
KpiReportController
class KpiReportController {
def index() {
def kpiReportService
render kpiReportService.serviceMethod
//render "Hello from KpiReportController"
}
}
,363,210
내가 Grails에 새로운 오전에 대한 우체부를 사용하여 예외
Grails application running at http://localhost:8080 in environment: development
ERROR org.grails.web.errors.GrailsExceptionResolver - NullPointerException occurred when processing request: [POST] /KpiReport/index
Cannot get property 'serviceMethod' on null object. Stacktrace follows:
java.lang.reflect.InvocationTargetException: null
at org.grails.core.DefaultGrailsControllerClass$ReflectionInvoker.invoke(DefaultGrailsControllerClass.java:210)
at org.grails.core.DefaultGrailsControllerClass.invoke(DefaultGrailsControllerClass.java:187)
at org.grails.web.mapping.mvc.UrlMappingsInfoHandlerAdapter.handle(UrlMappingsInfoHandlerAdapter.groovy:90)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:961)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:895)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:967)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:869)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:843)
at org.grails.web.servlet.mvc.GrailsWebRequestFilter.doFilterInternal(GrailsWebRequestFilter.java:77)
at org.grails.web.filters.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:67)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.NullPointerException: Cannot get property 'serviceMethod' on null object
at com.abc.project.KpiReportController.index(KpiReportController.groovy:7)
... 13 common frames omitted
, 내가 뭔가를 놓친 게있을 수 있습니다, 오해 무슨 일이 일어나고 있는지 알아내는 데 도움이 바랍니다.
거기에 표시되는 내용은 작동하지 않습니다. 원래의 포스터와 같은 실수를 범했습니다. 'kpiReportService.serviceMethod' 대신에'kpiReportService.serviceMethod()'를 원한다. –
당신 말이 맞아요. 그러나 2 개의 실패가있었습니다 - 제 대답이 예외 중 하나를 수정했습니다. – gregorr
동의. 내가 보여준 코드가 작동하지 않는다는 것을 지적했습니다. 감사! –