Java 浏览器显示不完整的JSP数据

Java 浏览器显示不完整的JSP数据,java,jsp,tomcat,struts,Java,Jsp,Tomcat,Struts,我正在使用JSP、Struts 1.3和ApacheTomcat5.5。 由于某些原因,来自JSP的响应被截断,并且没有显示完整的信息。 从有问题的JSP页面生成的类看起来很好。 Catalina的日志中没有任何错误记录。 我不知道如何解决这个问题 更新:我确信我在正确的日志中查找错误($CATALINA_HOME/logs)。此外,我正在将一些日志消息写入自定义日志文件。他们两人都没有提到这个错误。错误只发生在一个特定页面上,内容在同一位置被截断。如果我打印同一个实体几次,页面输出看起来很完美

我正在使用JSP、Struts 1.3和ApacheTomcat5.5。 由于某些原因,来自JSP的响应被截断,并且没有显示完整的信息。 从有问题的JSP页面生成的类看起来很好。 Catalina的日志中没有任何错误记录。 我不知道如何解决这个问题

更新:我确信我在正确的日志中查找错误($CATALINA_HOME/logs)。此外,我正在将一些日志消息写入自定义日志文件。他们两人都没有提到这个错误。错误只发生在一个特定页面上,内容在同一位置被截断。如果我打印同一个实体几次,页面输出看起来很完美。如果我在这个位置之前删除了一些输出,那么切割边界就会移动:内存分配问题?页面缓冲区大小对页面输出没有影响,我已经检查过了。在这个页面中,我使用include指令,并且我遇到了一些信息,如果生成的servlet的大小超过64KB,您的JSP编译可能会失败。Servlet生成得很好,我被卡住了。

根据您的更新:

如果在此位置之前删除一些输出,则切割边界将移动

在关闭outputstream的过程中似乎出现了问题。如果没有某个过滤器将
HttpServletResponse
替换为自定义实现,那么我会检查整个过滤器链,而自定义实现反过来又很差,例如,它没有正确地将
close()
方法委托给“原始”outputstream/writer。尝试禁用过滤器并重新测试。还要尝试将以下行添加到JSP的底部,以查看它是否解决了问题:

<% response.getWriter().flush(); %>

根据您的更新:

如果在此位置之前删除一些输出,则切割边界将移动

在关闭outputstream的过程中似乎出现了问题。如果没有某个过滤器将
HttpServletResponse
替换为自定义实现,那么我会检查整个过滤器链,而自定义实现反过来又很差,例如,它没有正确地将
close()
方法委托给“原始”outputstream/writer。尝试禁用过滤器并重新测试。还要尝试将以下行添加到JSP的底部,以查看它是否解决了问题:

<% response.getWriter().flush(); %>

我遇到过类似的问题,浏览器(调试器/Pagesource)中只显示(下载)JSP文件的一部分。令人担忧的是,这种情况并不总是发生

我发现有一个
NullPointerException
被抛出,因为连接超时最终只负责将部分JSP发送回服务器


因此,正如其他人在评论中建议的那样,一定要正确地查看日志。

我遇到过类似的问题,浏览器(调试器/Pagesource)中只显示(下载)部分JSP文件。令人担忧的是,这种情况并不总是发生

我发现有一个
NullPointerException
被抛出,因为连接超时最终只负责将部分JSP发送回服务器


因此,正如其他人在评论中建议的那样,一定要正确地查看日志。

您是否真的在正确的日志中正确的位置查找错误?没有它,它只能在黑暗中拍摄。此外,了解这是否是突然发生的,以及这是否只发生在所有或特定页面上,这将非常有用。另外,这些页面是否使用老式的、容易出错的Scriptlet?发布JSP代码——这有很多原因。另外,您的一个日志中有一个异常,您只是没有找到它。在这里,
帮助解决了这个问题。您是否真的在正确的日志中的正确位置查找错误?没有它,它只能在黑暗中拍摄。此外,了解这是否是突然发生的,以及这是否只发生在所有或特定页面上,这将非常有用。另外,这些页面是否使用老式的、容易出错的Scriptlet?发布JSP代码——这有很多原因。另外,您的一个日志中有一个异常,您只是没有找到它。在这里,
帮助解决了这个问题。