一次排除异常的经历

错误描述

在sakai中,以普通注册用户登录系统,在个人资料页面的“基本信息”和“工作信息”模块中单击“编辑”按钮无反应(无编辑界面出现)并且按F12在Console窗口中出现500错误。

同时在Tomcat的程序窗口中出现如下异常提示:

排错过程

先在IDEA中单步调试,希望能发现异常的触发点,但最终进入了数个.class文件,无法发现触发异常的语句。

之后仔细查看异常的堆栈跟踪,发现有如下信息:

at wicket.contrib.tinymce.settings.TinyMCESettings.lazyLoadTinyMCEResource
(TinyMCESettings.java:971)

at wicket.contrib.tinymce.TinyMceBehavior.renderHead(TinyMceBehavior.java:60)

两处,而TinyMCE是一个具有富文本编辑功能的组件,而在MyInfoEdit.java文件和MyBusinessEdit.java中都有如下语句

/* In MyBusinessEdit.java */
businessBiography.add(new TinyMceBehavior(new TextareaTinyMceSettings()));
/* In MyInfoEdit.java */
personalSummary.add(new TinyMceBehavior(new TextareaTinyMceSettings()));

因此怀疑是TinyMCE组件的问题。果然,将这两处的语句注释掉,并且在对应的MyBusinessEdit.html和MyInfoEdit.html中将相应的wicket标签注释掉。

重新编译以后问题解决。

讨论

现在的解决方案只是很简单地把两个使用了TinyMCE控件的地方去掉,但更深层次的问题应该处在TinyMCE自己的内部逻辑上。有待进一步研究。

posted @ 2014-01-16 20:22  飞鸟_Asuka  阅读(323)  评论(0编辑  收藏  举报