Xalan 2.7.1和IIS 7导致HTML截断

时间:2012-10-18 22:47:03

标签: xml tomcat iis-7 xalan ajp

我有一个相当棘手的问题,我已经做了很多研究,但没有找到解决方案的运气。

我有一个由Tomcat servlet组成的Web应用程序。 Tomcat在Windows 2008 R2服务器上运行,并使用IIS中的Apache ISAPI重定向器1.2.37重定向到Tomcat(使用ajp13)。

我的应用程序管理XML文件库。当客户端(浏览器)请求时,servlet使用XSL将XML文件转换为HTML。 HTML将传回IIS,然后返回浏览器进行显示。 Xalan是用于JAXP javax.xml.transform的实现。这种架构已经运作了好几年。

最近,我们从Xalan 2.7.0升级到2.7.1,发现在浏览器中查看时,某些XML文件的HTML被截断了。

经过一些反复试验,我们知道的是:

  1. 仅在源XML文件为>时才会发生截断。 ~1.7 MB。
  2. 每次都会在同一位置截断HTML。 (缓冲区大小问题??)
  3. 我尝试将Xalan的输出直接重定向到文件......没有截断。
  4. 仅当Xalan 2.7.1与IIS 7一起使用时才会发生截断

    Xalan 2.7.1 + IIS 7 =截断

    Xalan 2.7.1 + IIS 6 =没有截断

    Xalan 2.7.0 + IIS 7 =没有截断

  5. ISAPI重定向程序日志包含以下消息:

    [error] isapi_write_client::jk_isapi_plugin.c (1250): WriteClient failed with 534 (0x00000216)      
    
    [info] ajp_process_callback::jk_ajp_common.c (1945): Writing to client aborted or client network problems
    
    [info] ajp_service::jk_ajp_common.c (2607): (ajp13w) sending request to tomcat failed (unrecoverable), because of client write error (attempt=1)
    
    [info] service::jk_lb_worker.c (1400): service failed, worker ajp13w is in local error state
    
    [info] service::jk_lb_worker.c (1419): unrecoverable error 200, request failed. Client failed in the middle of request, we can't recover to another instance.
    
    [info] HttpExtensionProc::jk_isapi_plugin.c (2257): service() failed because client aborted connection
    
  6. 鉴于上面的第4和第5项,不清楚谁是罪魁祸首(IIS,重定向器,Xalan或Tomcat ......或者所有这些)。

    任何建议都会非常感激。

0 个答案:

没有答案