XML request error: Internal Server Error (500)解决方法

XML request error: Internal Server Error (500)解决方法

以下是网上找的最多的资料:

网上很容易找到一篇关于fckeditorjava文件上传扩展的帖子。但是,实践的时候经常会有人遇到servlet error的报错。如果有log,或正在debug,可以看到报错信息:java.lang.NoClassDefFoundError: org/apache/xml/serializer/TreeWalker
    at org.apache.xalan.processor.TransformerFactoryImpl.newTransformer(TransformerFactoryImpl.java:821)
    at com.fredck.FCKeditor.connector.ConnectorServlet.doGet(ConnectorServlet.java:151)
找不到TreeWalker这个类。

   原本这个类是包含在xalan.jar中的,但是xalan-j2.7.0版的发布包中,将serializer包中的类单独打包成serializer.jar,不再包含在xalan.jar中,所以才会即使添加了xalan.jar也无法找到该类,添加后即可解决问题。

网上的相关资料:

> You need to include serializer.jar file also.  This file includes the
> serializer.  In the Xalan Java 2.7 release, serializer code is included in
> this jar file.  The release 2.6 has serializer code included in the
> xalan.jar file.

:我的总结是:一般来说fckeditor出现问题首先web.xml里面是否配置正确,然后看是目录否权限问题

第三可能是xalan.jar不存在。

 

后面发现问题还是没有解决,开始从源代码中找问题的根源。

找到:browser.html中找

var oXML = new FCKXml() ;

       alert('111111');

       if ( callBackFunction ){

              alert('2222:'+sUrl);

              oXML.LoadUrl( sUrl, callBackFunction ) ;   // Asynchronous load.

       }else{

              alert('3333');

              return oXML.LoadUrl( sUrl ) ;

       }

发现是在加载LoadUrl xml文件的时候报错,找到FCKXmlfckxml.js文件中定义的。

oXmlHttp.onreadystatechange = function()

              {

                     if ( oXmlHttp.readyState == 4 )

                     {

                            oFCKXml.DOMDocument = oXmlHttp.responseXML ;

                            alert('444444:'+oXmlHttp.status);

                            if ( oXmlHttp.status == 200 || oXmlHttp.status == 304 ){

                                   asyncFunctionPointer( oFCKXml ) ;

                            }else{

                                   alert('5555555555555:'+oXmlHttp.responseText);

                                   alert( 'XML request error: ' + oXmlHttp.statusText + ' (' + oXmlHttp.status + ')' ) ;

                            }

                     }

              }

弹出oXmlHttp.status=500和异常情况信息:

java.net.URISyntaxException:Illegal character in path at index 18: file:///D:/Program File/

Apache Software Foundation/Tomcat 5.5/webapps/zeqi/upload

       at java.net.URI$Parser.fail<URI.java:2809>

       at java.net.URI$Parser.checkChars<URI.java:2902>

       at java.net.URI$Parser.parseHierarchical<URI.java:3066>

       at java.net.URI$Parser.parse<URI.java:3014>

       at java.net.URI.<init><URI.java:578>

另外一种方法:在本地tomcat下测试的时候,如果启动控制台,在点击fck图片上传的时候控制台也会报上面相同的错误。确定了找到问题的原因之后,下面就比较好解决问题了。

 

主要原因是由于文件夹Program File中的空格所致,所以可以把我们发布在tomcat下的工程放到没有空格的文件夹下,如D盘根目录下。

修改tomcat配置文件,如:D:\Program Files\Apache Software Foundation\Tomcat 5.5\conf\server.xml

Host节点配置上加一个Context<Context path="" docBase="D:\zeqi" reloadable="true" debug="0"></Context>

 

重新启动就可以了。由于开发的时候是用的eclipse+jetty+webwork(richtexteditor),在eclipse中运行的时候是没有问题的。

另外关于图片上传上去之后,选择显示不了图片的问题是由于端口不对,可以修改webwork.properties中的下面这行:

### used to build URLs, such as the UrlTag

webwork.url.http.port = 8081

修改成tomcat的端口号就可以了。

出现"500 The server encountered an internal error that prevented it from fulfilling this request"错误通常是由于服务器端的问题导致的。这个错误信息表明服务器无法完成请求,可能是由于代码错误、配置问题或者服务器资源不足等原因引起的。 解决这个问题的方法有以下几种: 1. 检查代码:首先,你需要检查你的JSP代码,确保没有语法错误或逻辑错误。特别是检查是否有未关闭的标签、变量命名错误、方法调用错误等。 2. 检查配置:检查你的服务器配置文件,例如Tomcat的配置文件(如server.xmlweb.xml等),确保配置正确。特别是检查是否有重复的配置、缺少必要的配置、配置错误等。 3. 查看日志:查看服务器的日志文件,例如Tomcat的日志文件(如catalina.out、localhost.log等),查找详细的错误信息。日志文件通常会提供更多的上下文和堆栈跟踪,帮助你定位问题所在。 4. 检查服务器资源:如果服务器资源不足,例如内存不足或磁盘空间不足,也可能导致该错误。你可以检查服务器的资源使用情况,例如使用top命令查看系统资源占用情况。 5. 重启服务器:有时候,简单地重启服务器可以解决该问题。尝试重启服务器,看看是否能够解决问题。 请注意,以上方法仅提供了一些常见的解决方案,具体解决方法可能因具体情况而异。如果问题仍然存在,建议你查阅相关的文档或寻求专业的技术支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值