我正在处理运行在Websphere 7 (JDK 6)上的旧版servlet代码。开发环境使用Tomcat 6 (JDK 6)。
- 为什么它在Websphere 7上工作而在Tomcat 6上不工作?
- 这是否与应用服务器有关?
如果您对问题2的答案是肯定的,除了分解代码或使用动态包含,您是否有Tomcat 6 (JDK 6)的解决方法?
时间表不允许将静态包含更改为动态包含,主要原因是大多数页面都与业务模型代码耦合,包括应用程序的主模板。
我正在处理运行在Websphere 7 (JDK 6)上的旧版servlet代码。开发环境使用Tomcat 6 (JDK 6)。
如果您对问题2的答案是肯定的,除了分解代码或使用动态包含,您是否有Tomcat 6 (JDK 6)的解决方法?
时间表不允许将静态包含更改为动态包含,主要原因是大多数页面都与业务模型代码耦合,包括应用程序的主模板。
我已经没有能够转化为 jsp:include
的静态html/jss/css块了(大部分都是非静态html)...
你可以在web.xml
文件中设置mappedfile为false,这样就可以摆脱许多并不一定适合放入 include的静态行,但它们却可以累计节省空间:
<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>
Peter Hart的<c:catch>
解决方案听起来也是一个不错的选择。
最好直接参考以下链接所述的位置进行更改: https://www.assetbank.co.uk/support/documentation/knowledge-base/byte-limit-exceeded-error/
定位文件[Tomcat_Home]/conf/web.xml,并搜索文件中的'JspServlet'。这将返回一个包含一些<init-param>
值的xml节点<servlet>
。您需要添加一个与下面相同的额外<init-param>
。
<init-param>
<param-name>mappedfile</param-name>
<param-value>false</param-value>
</init-param>
对于Tomcat用户来说,这更清晰、更直接。
其他参考解决方案,在这里集中阅读(大部分已经在之前的评论中提到),链接为:http://answered.site/development-environment-setup-uses-tomcat-6-jdk-6-why-does-it-work/603017/
这个问题也存在于Tomcat-8和JDK1.8(Java 8)中。
<configuration>
<jsp-configuration development="true" mapped-file="false"/>
</configuration>
今天我遇到了这个问题
当我使用Tomcat 8.0.30而不是Tomcat 8.0.39时,我的问题得到了解决
如果您要在使用嵌入式Tomcat的Spring Boot时修复_jspService超出65535字节限制
的错误,则可以在application.properties
中使用以下配置:
server.servlet.jsp.init-parameters.mappedfile=false
编辑:给出的解决方案并不是真正的解决方案,而是误解(问题无法在所有Tomcat版本上重现),很抱歉。