jeecms使用版本 v8,其他版本若有这个问题,应该也适用

异常信息:

29-May-2019 11:18:58.206 严重 [http-nio-8088-exec-1] org.apache.catalina.core.StandardWrapperValve.invoke Servlet.service() for servlet [JeeCmsAdmin] in context with path [] threw exception [Request processing failed; nested exception is java.lang.NullPointerException] with root causejava.lang.NullPointerExceptionat com.jeecms.common.hibernate4.TreeIntercptor.updateParent(TreeIntercptor.java:135)at com.jeecms.common.hibernate4.TreeIntercptor.onFlushDirty(TreeIntercptor.java:124)at org.hibernate.event.internal.DefaultFlushEntityEventListener.invokeInterceptor(DefaultFlushEntityEventListener.java:365)at org.hibernate.event.internal.DefaultFlushEntityEventListener.handleInterception(DefaultFlushEntityEventListener.java:342)at org.hibernate.event.internal.DefaultFlushEntityEventListener.scheduleUpdate(DefaultFlushEntityEventListener.java:293)at org.hibernate.event.internal.DefaultFlushEntityEventListener.onFlushEntity(DefaultFlushEntityEventListener.java:160)at org.hibernate.event.internal.AbstractFlushingEventListener.flushEntities(AbstractFlushingEventListener.java:231)at org.hibernate.event.internal.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:102)at org.hibernate.event.internal.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:55)at org.hibernate.internal.SessionImpl.flush(SessionImpl.java:1258)at org.hibernate.internal.SessionImpl.managedFlush(SessionImpl.java:425)at org.hibernate.engine.transaction.internal.jdbc.JdbcTransaction.beforeTransactionCommit(JdbcTransaction.java:101)at org.hibernate.engine.transaction.spi.AbstractTransactionImpl.commit(AbstractTransactionImpl.java:177)at org.springframework.orm.hibernate4.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:584)at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:761)at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:730)at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:485)at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:291)at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:213)at com.sun.proxy.$Proxy31.update(Unknown Source)at com.jeecms.cms.action.admin.main.ChannelAct.update(ChannelAct.java:413)at com.jeecms.cms.action.admin.main.ChannelAct$$FastClassBySpringCGLIB$$e67da54.invoke(<generated>)at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)

异常代码:TreeIntercptor.java

if ((preParent == null && currParent == null) || (preParent != null && currParent != null && preParent.getId().equals(currParent.getId()))) {return false;
}

由于 preParent.getId()值为 null 造成的 空指针异常,开始怀疑懒加载,hibernate 代理等问题,百度各种回答未解决问题

解决办法:

if ((preParent == null && currParent == null)|| (preParent != null && currParent != null && ((Channel)preParent).getId().equals(((Channel)currParent).getId()))) {return false;}

将preParent 和 currParent 强转为Channel 对象

至于为什么强转之后能够通过getId()获取到值,暂不清除原因,debug下观察前后两个对象的值也都时一样,有知道的可以说一下,谢谢

记录一次jeecms修改子栏目或子栏目进行排序时,服务请求发生了错误,相关推荐

  1. jeecms服务器响应失败,后台提示“服务请求发生了错误”,原因不明

    八月 08, 2018 2:46:51 下午 org.apache.catalina.core.StandardWrapperValve invoke 严重: Servlet.service() fo ...

  2. 记录 vue项目打包放入 hbuilder 做app真机测试时 无法请求后台服务接口

    1.因为发布app时 vue开发模式下配置的跨域是无效的,打包后会找不到接口 例如下面是之前的错误版: '/propertyCmsAPI': {target: 'http://192.168.1.11 ...

  3. phpcms调用全部频道栏目及子栏目代码详解

    经常有朋友在做模板的时候,需要用到调用栏目及其子栏目,增强网站的用户体验! 以下提供的调用全部频道栏目及子栏目的代码加入到模板中的对应位置即可! {loop $CATEGORY $catid $cat ...

  4. dede php 循环,织梦怎么循环调用多级子栏目如二级栏目下三级栏目

    织梦怎么循环调用多级子栏目如二级栏目下三级栏目? 本文是关于织梦DedeCMS调用多级子栏目的,拿来分享下. 后台已经建好栏目,对于产品展示栏 栏目导航如下图所示: 推荐学习:织梦cms 代码如下:{ ...

  5. dedecms调用当前栏目的子栏目怎么操作

    有时我们建网站会建很多分类,每个分类又有小分类,为了让顶级栏目获得更好的权重和排名,我们会聚合子栏目.那么dedecms调用当前栏目的子栏目怎么操作呢? 有两种方法:标签dede:sonchannel ...

  6. 数据库记录的添加、修改、删除(DataAdapter、DataTable 、DataRow )

    数据库记录的添加.修改.删除(DataAdapter.DataTable .DataRow ) //数据添加操作 DataSet dsLog = new DataSet();     SqlDataA ...

  7. dedecms提取某栏目及子栏目名称到首页怎么弄

    我们建网站时有不同的需求,例如为页面创建一个栏目导航,用dedecms如何提取某栏目及子栏目名称和链接呢?如下图所示,先列出指定的顶级栏目,在下方再列出此栏目的所有子栏目. 之前ytkah说过dede ...

  8. dedecms如何调用当前栏目的子栏目及子栏目文章

    前面ytkah谈到了 dedecms调用当前栏目的子栏目怎么操作,有的朋友会问如果再增加一个调用子栏目文章的需求,即调用当前栏目的子栏目及子栏目文章,这个有办法实现吗?这时就要涉及到另外两个标签的调用 ...

  9. phpcmsV9子栏目调用其父栏目名称、URL、catid等信息 - 方法总结

    phpcmsV9子栏目调用其父栏目名称.URL.catid等信息 - 方法总结 phpcmsV9子栏目列表页.内容页调用该栏目的父栏目和顶级栏目的名称.url链接.catid-id等信息的方法.具体参 ...

  10. 如果多个用户同时修改同一客户记录,而且先后提交修改,Oracle 怎样保证该客户记录...

    如果多个用户同时修改同一客户记录,而且先后提交修改,Oracle 怎样保证该客户记录   首先你要了解什么叫做 "事务 transcation " :一个事务包含一个或多个DML语 ...

最新文章

  1. 〖Linux〗多个JDK版本之间快速切换
  2. vue 数据更新不及时_陈词懒调的《未来天王》正式完结,再也不用担心她更新不及时了!...
  3. VMware12.0PRo 下安装Ubuntu14.04LTS
  4. linux思考の为何要挂载
  5. goland go test_七天用Go写个docker(第一天)
  6. OpenLayers3关于Map Export的Canvas跨域
  7. C - 指针总结
  8. C++设计模式之三 单例模式
  9. LeetCode 858. 镜面反射(最小公倍数/最大公约数)
  10. 1.3 编程基础之算术表达式与顺序执行 13 反向输出一个三位数(C++ Scratch)
  11. ubuntu下NDK环境配置
  12. 显示器信号接口的发展历程
  13. html5小游戏需求分析,2015年HTML5就业需求走势总结分析
  14. 4204. 构造矩阵
  15. E71使用蓝牙连接PC套件的一些经验
  16. obs多推流地址_如何使用OBS推流直播线上广交会(图文详解) | 文末福利
  17. 信号指示RSSI与显示格数关系
  18. 多多客支持微信公众号,正式开放公测!
  19. DWG文件如何转换为PDF黑白文件
  20. 《Shell脚本学习指南》读书笔记

热门文章

  1. dcs常用的冗余方式_冗余技术在DCS平台应用分析
  2. 华东师范大学计算机保研方案,经验分享:华东师范大学的成功保研之路(面试干货)...
  3. 全球及中国第三方物流行业竞争格局与十四五运作模式咨询报告2022版
  4. 国内外已知SAR卫星相关信息整理(持续更新-2022.9.6)
  5. 汽车维修企业管理【2】
  6. Windows 7 IE主页被篡改,如何修复?
  7. 两个通宵熬出来的互联网大厂最新面试题收集整理1000道(三-Memcached),欢迎点赞收藏!!!
  8. 人脸特征点定位方法DEST, 基于VS2019+OpenCV3.4.6
  9. Rendezvous机制完成数据交互。Rendezvous是一个基于—_者一__者模型设计的抽象类。
  10. 计算机硬盘数据如何恢复,怎样进行硬盘数据恢复