我正在Eclipse中开发一个Java站点,该站点依赖于JSP文件和servlet,在开发过程中我使用一个插件(Eclipse Jetty 5.0.0)在Eclipse中运行该站点。我在浏览器中加载一个页面时得到了这个异常:
XXXXX_jsp.java]<|The code of method _jspService(HttpServletRequest, HttpServletResponse) is exceeding the 65535 bytes limit
我最终将在Tomcat上运行这个站点,并且我能够通过在Tomcat中添加以下内容来解决此问题 tomcat_install/conf/web.xml中的JspServlet:
<init-param>
<param-name>mappedfile</param-name>
<param-value>false</param-value>
</init-param>
但是,我做了相当的搜索,无法找到类似的配置解决方案,使其在Eclipse/Jetty中工作,我可以将该方法分解为几个较小的方法,但我想避免它。希望使用配置(而不是代码更改)来解决这个问题。
JettyJspServlet 支持与 Tomcat 的 JspServlet
相同的 init-params。
<code>mappedfile</code>init param在那里(只需将其设置为无效值,如“foo”,并查看弹出的错误消息“Warning:Invalidvalue for The initParam mappedfile。将使用默认值“false”)
您需要引用现有的JSP servlet并将这些init参数添加到您的WEB-INF/web.xml
。
<servlet id="jsp">
<servlet-name>jsp</servlet-name>
<init-param>
<param-name>mappedfile</param-name>
<param-value>false</param-value>
</init-param>
</servlet>
或者使用此参数创建一个新的webdefault.xml
,并让您的webapp将其与${jetty.base}/webapp/${webappid}. xml
中的XML可部署项一起使用
<Configure class="org.eclipse.jetty.webapp.WebAppContext">
<Set name="contextPath">/foo</Set>
<Set name="war"><Property name="jetty.webapps"/>/foobar.war</Set>
<Set name="defaultsDescriptor"><Property name="jetty.base"/>/etc/mywebdefault.xml</Set>
</Configure>
" mappedfile "初始化参数:
它似乎在中间*中从生成正常打印语句切换。java文件到1行打印语句
这意味着您在JSP文件中处于JavaC支持的前沿。*的大小有很多硬性限制。javac上的java文件,而您的JSP文件现在正在克服这些限制。
一些(但不是全部)javac限制:
但是如果你需要维护/编辑那个JSP文件,要知道你几乎肯定不能添加它(只能删除)。
将来你可能不得不用导入将它重构成更小的部分。