_jspService超过 65535 字节限制

2022-09-01 05:45:06

因此,我正在处理在 Websphere 7 (JDK 6) 上运行的旧版 servlet 代码。开发环境设置使用 Tomcat 6 (JDK 6)。

  1. 为什么它可以在Websphere 7上工作,而不是在Tomcat 6中工作?
  2. 这是否与应用程序服务器有关?

如果你的答案是肯定的2,那么除了分解代码或使用动态包含之外,你在Tomcat 6(JDK 6)上是否有解决方法?

该计划不同意将静态包含更改为动态包含,主要是因为大多数页面都与业务模型代码(包括应用的主模板)相结合。


答案 1

这听起来像是你达到了64k方法的限制,可能是由于Tomcat如何从你的JSP中构建一个类。此页面建议更改静态包括以下内容:

<%@ include file="test.jsp" %>

要动态包含如下内容,以避免此问题:

<jsp:include page="test.jsp" /> 

答案 2

我用完了可以外部化的静态html / jss / css块(大部分是非静态html) ...jsp:include

你可以把你的,mappedfile设置为false,这样就可以摆脱许多静态行,这些静态行不一定是很好的块,可以放入包含中,但它们加起来可以节省空间:web.xml

<servlet>
    <servlet-name>jsp</servlet-name>
    <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
    ...
    <init-param>
        <param-name>mappedfile</param-name>
        <param-value>false</param-value>
    </init-param>
    ...
</servlet>

彼得·哈特的解决方案听起来也不错。<c:catch>