ckeditor集成ckfinder 从服务器读取XML数据出错

前端之家收集整理的这篇文章主要介绍了ckeditor集成ckfinder 从服务器读取XML数据出错前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

最近在练习小项目,就想把ckeditor和ckfinder整进来。

至于如何使用ckeditor、ckfinder及他们的整合,这个很简单,网上教程一大推,官网上也有教程,这里就不细说了。

在把ckeditor跟ckfinder整合进项目的时候,访问有ckeditor编辑器的页面,点击图像工具栏后出现如下对话框,


再点击浏览服务器按钮,结果弹出错误


提示从服务器读取XML数据出错,关键是后台没打印出错日志,用firebug查看也没看到js报错,这下纠结了。。。网上百度+google了一下,基本都是提问的多,回答的少,咋办啊。。。

这里简单介绍项目配置,项目上下文路径是 “/”,ckeditor与ckfinder位置如下:


其他的如config.xml是从ckfinder官方下载的war包中的示例程序中拷贝的,web.xml中也加入了相应的配置(直接拷贝的实例中web.xml中的配置),ckeditor与ckfinder整合的代码如下:

CKFinder.setupCKEditor( ckeditor,'/resources/js/ckfinder/' );

因为ckeditor、ckfinder是相互独立的应用,彼此不依赖,所以就直接访问了/resources/js/ckfinder/ckfinder.html这个示例中的页面,结果还是报一样的错,而这个在将官方示例war包部署到tomcat服务器上是能正常运行的,郁闷了。。。

然后打开firebug,看到了错误提示后台没有输出错误信息):


这个路径是有点熟悉的,在web.xml中有相关配置:

<servlet>
	<servlet-name>ConnectorServlet</servlet-name>
	<servlet-class>com.ckfinder.connector.ConnectorServlet</servlet-class>
	<init-param>
		<param-name>XMLConfig</param-name>
		<param-value>/WEB-INF/config.xml</param-value>
	</init-param>
	<init-param>
		<param-name>debug</param-name>
		<param-value>false</param-value>
	</init-param>
	<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
	<servlet-name>ConnectorServlet</servlet-name>
	<url-pattern>
		/ckfinder/core/connector/java/connector.java
	</url-pattern>
</servlet-mapping>
但是这个路径是有问题的,由于项目上下文路径是“/”,所以访问这个servlet的url应该是
http://localhost:8080/ckfinder/core/connector/java/connector.java?command=Init
为什么会多出 resources/js/这一段呢?于是想看看这个servlet是在哪调用的,全局搜索了一下,/ckfinder/core/connector/java/connector.java这段信息只在web.xml中出现,看来无法直接查看到在哪访问这个servlet的。于是从ckfinder.html入手,因为ckfinder没有集成时访问的是ckfinder.html,然后出错的。打开ckfinder.html,里面的dom元素很少
<div id="ckfinder"></div>
然后是一段js,这段js的功能应该是调用ckfinder的方法生成html dom元素,然后放到<div id="ckfinder"></div>节点中,因此访问那个servlet应该是在这段js及页面引入的ckfinder.js中。打开ckfinder.js,根据错误信息去找。。。看了半天,里面的js代码错综复杂,完全没有头绪,看不下去了,还是无法定位到哪一行代码访问了那个servlet。。。
js能力有限啊。。。

唉,不想找了,猜了一下,出错的路径比正常的路径不就多了resources/js/这段嘛,是不是跟ckfinder目录所在的位置有关啊,看了下官方示例中的,它是与WEB-INF目录平级的,于是我也将ckfinder目录移出来,移到与WEB-INF平行,如下图:


修改页面一如ckfinder js的路径,重新部署了一下,这下成功了,没有从服务器读取XML数据出错这个错误了。。。

问题是解决了,但是还没搞清楚为什么会出现这种情况,留待以后搞明白了再来补充吧。。。

猜你在找的XML相关文章