2019-03-12 14:29:00,758 ERROR ~ Cannot invoke method get() on null object
2019-03-12 14:29:00,763 ERROR ~ play.exceptions.TemplateExecutionException: Cannot invoke method get() on null object
2019-03-12 14:29:00,814 ERROR ~ Internal Server Error (500) for request GET /product/detail-8116285-1637158.html
play.exceptions.TemplateExecutionException: Cannot invoke method get() on null object
at play.templates.BaseTemplate.throwException(BaseTemplate.java:84)
at play.templates.GroovyTemplate.internalRender(GroovyTemplate.java:243)
at play.templates.Template.render(Template.java:26)
at play.mvc.results.RenderTemplate.(RenderTemplate.java:24)
at play.mvc.Controller.renderTemplate(Controller.java:657)
at play.mvc.Controller.renderTemplate(Controller.java:637)
at play.mvc.Controller.render(Controller.java:692)
at controllers.remote.mp.MpTicketController.getProductGoodsDetail(MpTicketController.java:2319)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at play.mvc.ActionInvoker.invokeWithContinuation(ActionInvoker.java:682)
at play.mvc.ActionInvoker.invoke(ActionInvoker.java:640)
at play.mvc.ActionInvoker.invokeControllerMethod(ActionInvoker.java:616)
at play.mvc.ActionInvoker.invokeControllerMethod(ActionInvoker.java:611)
at play.mvc.ActionInvoker.invoke(ActionInvoker.java:174)
at play.server.PlayHandler$NettyInvocation.execute(PlayHandler.java:237)
at play.Invoker$Invocation.run(Invoker.java:264)
at play.server.PlayHandler$NettyInvocation.run(PlayHandler.java:217)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:98)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:206)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.NullPointerException: Cannot invoke method get() on null object
at /app/views/mp/productDetail.html.(line:229)
at play.templates.GroovyTemplate.internalRender(GroovyTemplate.java:220)
at play.templates.Template.render(Template.java:26)
at play.mvc.results.RenderTemplate.(RenderTemplate.java:24)
at play.mvc.Controller.renderTemplate(Controller.java:657)
at play.mvc.Controller.renderTemplate(Controller.java:637)
at play.mvc.Controller.render(Controller.java:692)
at controllers.remote.mp.MpTicketController.getProductGoodsDetail(MpTicketController.java:2319)
... 16 more
play.exceptions.TemplateExecutionException: Cannot invoke method get() on null object
at play.templates.BaseTemplate.throwException(BaseTemplate.java:84)
at play.templates.GroovyTemplate.internalRender(GroovyTemplate.java:243)
at play.templates.Template.render(Template.java:26)
at play.mvc.results.RenderTemplate.(RenderTemplate.java:24)
at play.mvc.Controller.renderTemplate(Controller.java:657)
at play.mvc.Controller.renderTemplate(Controller.java:637)
at play.mvc.Controller.render(Controller.java:692)
at controllers.remote.mp.MpTicketController.getProductGoodsDetail(MpTicketController.java:2319)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at play.mvc.ActionInvoker.invokeWithContinuation(ActionInvoker.java:682)
at play.mvc.ActionInvoker.invoke(ActionInvoker.java:640)
at play.mvc.ActionInvoker.invokeControllerMethod(ActionInvoker.java:616)
at play.mvc.ActionInvoker.invokeControllerMethod(ActionInvoker.java:611)
at play.mvc.ActionInvoker.invoke(ActionInvoker.java:174)
at play.server.PlayHandler$NettyInvocation.execute(PlayHandler.java:237)
at play.Invoker$Invocation.run(Invoker.java:264)
at play.server.PlayHandler$NettyInvocation.run(PlayHandler.java:217)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:98)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:206)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.NullPointerException: Cannot invoke method get() on null object
at /app/views/mp/productDetail.html.(line:229)
at play.templates.GroovyTemplate.internalRender(GroovyTemplate.java:220)
at play.templates.Template.render(Template.java:26)
at play.mvc.results.RenderTemplate.(RenderTemplate.java:24)
at play.mvc.Controller.renderTemplate(Controller.java:657)
at play.mvc.Controller.renderTemplate(Controller.java:637)
at play.mvc.Controller.render(Controller.java:692)
at controllers.remote.mp.MpTicketController.getProductGoodsDetail(MpTicketController.java:2319)
... 16 more
上面的错误总是显示空指针异常,而且原因是Cannot invoke method replace() on null object,
查看代码
其实这个问题的原因,根本就不是229这句代码的原因,原因是214行这句代码的原因,可是错误日志显示的确实229行。
修改方法如下,就是把214行,这个地方,加一个校验就够了