新建的菜单,点击菜单之后报空指针的错
错误处理 89
版本号:
镜像版本 harbor.oinone.top/oinone/oinone-designer-mini-v5.2:5.2.9
本地版本 5.2.9
问题:
点击菜单之后服务端报错:
java.lang.NullPointerException
at pro.shushi.pamirs.boot.web.service.impl.ViewServiceImpl.compileLayout(ViewServiceImpl.java:462)
at pro.shushi.pamirs.boot.web.service.impl.ViewServiceImpl.layout(ViewServiceImpl.java:323)
at pro.shushi.pamirs.boot.web.loader.PageLoadAction.loadView(PageLoadAction.java:292)
at pro.shushi.pamirs.boot.web.loader.PageLoadAction.loadUI(PageLoadAction.java:245)
at pro.shushi.pamirs.boot.web.loader.PageLoadAction.load(PageLoadAction.java:180)
at pro.shushi.pamirs.boot.web.loader.PageLoadAction$$FastClassBySpringCGLIB$$2848f5b7.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:771)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:749)
at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:88)
at pro.shushi.pamirs.framework.faas.fun.manage.ManagementAspect.around(ManagementAspect.java:71)
你的期望:
正常执行
如何重现问题:
使用json文件在业务工程导入设计器数据并失败。
-
排查:
先debug一下。断点到pro.shushi.pamirs.boot.web.cache.LayoutDefinitionCache#queryLayoutsByName这里
然后去找一下base_layout_definition这张表有没有这个name的数据,结果发现这条数据被删除了。
解释:如果使用json文件的格式向业务工程导入设计器数据,但是没有成功。就会把base_layout_definition的layout数据删除掉,导致在设计页面数据绑定菜单之后,查询找不到layout数据,报一个空指针错误。
解决方案有两个,第一个是每次启动业务工程的时候都使用json导入设计器数据,这样保证每次他的layout数据都存在,第二个是重启一下设计器把layout重新刷新一下。保证layout的数据始终存在,就不会有这个问题了。3个月前