我正在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_installconfweb.xml中的JspServlet中添加以下内容来解决这个问题。
<init-param>
<param-name>mappedfile</param-name>
<param-value>false</param-value>
</init-param>
然而,我做了大量的搜索,无法找到一个类似的配置方案来使它在EclipseJetty中工作。我可以把这个方法分解成几个小的方法,但我想避免这样做。希望用配置(而不是代码的改变)来解决这个问题。
该 JettyJspServlet
支持与Tomcat的init-params相同的 JspServlet
.
该 mappedfile
init-param就在那里(只要把它设置成像 "foo "这样的无效值,然后看着错误信息弹出"警告:initParam mappedFile的值无效。initParam mappedFile的无效值。将使用默认值 "false"。")
你需要引用现有的JSP servlet,并将这些init-parameters添加到你的 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使用它与XML部署在 ${jetty.base}/webapps/${webappid}.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 "init-param。
它似乎从在中间的*.java文件中 生成普通的打印语句切换到了单行打印语句。这意味着你在JSP文件中处于JavaC支持的剃刀边缘。 javac上对*.java文件的大小有很多硬性限制,而你的JSP文件现在正在勾选这些限制。
一些(但不是全部)javac的限制。
如果这个init-param对你有用,那么就使用它。但如果你需要维护编辑那个JSP文件,要知道,你几乎肯定不能对它进行添加(只能删除)。你将来很可能要用导入的方式把它重构成小块。