老蔡的个人专栏正式成立,以后工作中遇到的技术问题,或者生活中对一些事物的见解,都会和大家分享!独乐乐不如众乐乐!

ckfinder2 HTTP Status 500 Configuration wasn’t initialized correctly

SSHI BlandonTsai 3634℃ 0评论

对于 ckeditor 和 ckfinder 的配置,我相来是得心应手的。不过在上线一个新项目的时候,爆发了这个无比诡异的问题。

ckfinder2 http status 500

HTTP Status 500 java.lang.Exception:Configuration wasn’t initialized correctly

项目的本地测试环境在 myeclipse 中是 win7、tomcat7、jdk7,服务器的线上运行环境是 ws 2008R、nginx1.9、tomcat7、jdk7。本地测试情况妥妥哒,完全没有问题,虽然我整个框架系统使用的都是最新的处理组件:struts2.5.2、spring4.3.1、mybatis3.4.1。这种高版本的框架组合,只能在jdk7、tomcat7及 log4j2 上运行,不满足以上条件,项目根本无法启动。

但既然本地都是正常的,为什么布置到线上 ckfinder 就无法正常工作了呢?

第一因素:怀疑是 nginx 的目录权限问题

我检查了下 nginx 的目录配置,根本没有设置目录权限的条件,系统本身是 windows server 2008(非 linux)。仅仅是对请求进行了一个 tomcat 转发,而且线上其他版本的项目也是这么配置的,在那些项目中 ckfinder 完全运行正常。所以,不应该是 nginx 的配置问题。

下面是 nginx 配置源码:

第二因素:ckfinder 的 config.xml 配置文件有误

很多网友提示说,这应该是 ckfinder 的配置文件没有加载成功,有可能是配置文件本身有误,或者 web.xml 中加载配置文件时路径有误。我详细检查了 config.xml 的配置内容,与本地测试环境、以前的老项目环境进行比对,配置内容没有问题。而且 web.xml 中的配置文件路径也是对的。

下面是 web.xml 中 ckfinder 的 servlet 配置:

第三因素:ckfinder 的 servlet 容器加载时间

ckfinder 的加载方式是以 servlet 进行加载的,所以在 web.xml 配置中一定要先于 filter 启动,所以如上述源码所示启动时间完全在 filter 之前(包括servlet配置的代码块位置也放于filter之前)。由于我对 struts 的请求配置是 /* 所有请求进行过滤,所以基于 StrutsPrepareAndExecuteFilter 定义了自己的过滤器 PersonalFitler:

如上所示,对 ckdeditor、ckfinder的servlet请求进行转发,对.jsp页面请求禁止访问并跳转到首页,对正常的struts请求进行 action 方式转发。所以整个 ckfinder 的运行环境都是放行的,不存在其他组件的干扰拦截问题。

第四因素:tomcat 的版本问题

线上运行的其他版本项目,使用的是 tomcat7.0.39,而这个新项目用的是 tomcat7.0.65,我不晓得版本升级之间有没有兼容性的问题。所以尝试着把 tomcat的版本切换到 7.0.39,因为从线上其他项目的运行情况来看,这个版本的稳定性还是可以的。结果发现没有任何卵用,ckfinder 依然打不开。

项目web.xml配置文件的重新加载

这个问题我花费了一天时间后,依然没有找到问题出在哪。后来也打电话求教了几个大神,貌似觉得问题也是有点诡异,值得检查的几个地方好像都被我排除掉了,没有现场的源码调试看具体情况也说不出个所以然。 后来我在线上不停地鼓捣,不停地调整配置,突然有几次发现 ckfinder 又能正常使用了,迅速把调整的地方保存下来。但是每当我保存完修改过的内容,重新启动项目的时候,ckfinder 又挂了!

最后,我终于发现了一个规律:启动项目后,ckfinder 此时无法使用,把项目的 web.xml 配置随便改动一下保存(加个空行之类的),让配置文件在项目运行的状态下自动重新加载,ckfinder 就能正常使用了!

好无奈地说……

目前项目已经上线,这个也是权宜之计,但并不影响项目功能的正常使用,不知道哪位大牛觉得问题的症结在哪儿,望不吝赐教。

转载请注明:似水流年 » ckfinder2 HTTP Status 500 Configuration wasn’t initialized correctly

如果觉得文章还不错,欢迎打赏
喜欢 (0)or分享 (0)
头像
发表我的评论
取消评论


(1)个小伙伴在吐槽
  1. 头像
    偶然来访,受益良多!
    三五营销2016-12-20 16:29 回复