新建的菜单,点击菜单之后报空指针的错

yexiu 错误处理 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文件在业务工程导入设计器数据并失败。

回复

共1条回复 我来回复
  • yexiu的头像
    yexiu
    数式Oinone用户
    评论

    排查:
    先debug一下。断点到pro.shushi.pamirs.boot.web.cache.LayoutDefinitionCache#queryLayoutsByName这里
    然后去找一下base_layout_definition这张表有没有这个name的数据,结果发现这条数据被删除了。
    image-8
    解释:

    如果使用json文件的格式向业务工程导入设计器数据,但是没有成功。就会把base_layout_definition的layout数据删除掉,导致在设计页面数据绑定菜单之后,查询找不到layout数据,报一个空指针错误。
    解决方案有两个,第一个是每次启动业务工程的时候都使用json导入设计器数据,这样保证每次他的layout数据都存在,第二个是重启一下设计器把layout重新刷新一下。保证layout的数据始终存在,就不会有这个问题了。

    3个月前 0条评论