the method httpservletresponse httpservletrequest exceeding code bytes _jspservice java jsp tomcat servlets websphere-7

java - method - _jspService está excediendo el límite de 65535 bytes



_jspservice httpservletrequest httpservletresponse is exceeding the 65535 bytes limit (10)

¿Por qué funciona en Websphere 7 y no en Tomcat 6?

Porque tienen diferentes compiladores JSP que traducen los JSP a diferentes códigos Java. El compilador JSP de Tomcat (Jasper) aparentemente no es capaz de manejar grandes JSP.

Quizás la siguiente pregunta es, ¿es posible cambiar el límite de tamaño del método de la JVM?

No. Estos límites están integrados en el formato / estructura de los archivos de clase.

Los detalles se encuentran en la especificación de JVM ... pero es bastante complicado, y no queda completamente claro a partir de su pregunta qué límite ha alcanzado. (Pero eso es inmaterial ... no se pueden cambiar.)

Así que estoy tratando con un código de servlet heredado que se ejecuta en Websphere 7 (JDK 6). La configuración del entorno de desarrollo utiliza Tomcat 6 (JDK 6).

  1. ¿Por qué funciona en Websphere 7 y no en Tomcat 6?
  2. ¿Es esto algo relacionado con el servidor de aplicaciones?

Si tu respuesta es sí para no. 2, ¿tiene una solución alternativa para esto en Tomcat 6 (JDK 6) además de descomponer el código o utilizar las funciones dinámicas incluidas?

La programación no está de acuerdo con cambiar las inclusiones estáticas a dinámicas, principalmente porque la mayoría de las páginas se combinan con el código del modelo de negocio que incluye la plantilla principal de la aplicación.


A veces, dividir tu JSP en incluye no tiene sentido o no funciona. Otra forma de forzar su JSP para que se divida en métodos separados cuando se compila es separar su JSP en segmentos utilizando <c:catch> .


Al establecer el parámetro de inicialización "mappedFile" en "false" funcionó para mí.

Pero al usar el plugin eclipse alguna vez, se elimina y se debe configurar de nuevo en Tomcat Home.


Eidt: la solución dada no era una solución, pero la mala interpretación (el problema no se puede reproducir en todas las versiones de Tomcat) lo siento.


Es mejor señalar directamente dónde cambiarlo como se indica en el siguiente enlace: https://www.assetbank.co.uk/support/documentation/knowledge-base/byte-limit-exceeded-error/

Localice el archivo [Tomcat_Home] /conf/web.xml y busque el archivo para ''JspServlet''. Esto debería devolver un nodo xml de <servlet> contiene algunos valores de <init-param> . Deberá agregar un <init-param> adicional igual que el siguiente.

<init-param> <param-name>mappedfile</param-name> <param-value>false</param-value> </init-param>

Eso es más claro y directo para el usuario tomcat.

Otras soluciones de referencia que, por supuesto, en su mayoría se mencionaron en comentarios anteriores pero todas en un lugar para leer, aquí: http://answered.site/development-environment-setup-uses-tomcat-6-jdk-6-why-does-it-work/603017/

El problema también se encuentra en tomcat-8 con JDK1.8 (Java8)


Me encontré con este problema hoy
Mi problema se resolvió cuando tomé Tomcat 8.0.30 en lugar de Tomcat 8.0.39


Me quedé sin bloques html / jss / css estáticos que podría externalizar en jsp:include (se dejó principalmente html no estático) ...

Puede poner en su web.xml , el archivo mapped establecido en falso, para eliminar muchas líneas estáticas que no son necesariamente buenos bloques para incluir en una inclusión, pero se suman para ahorrar espacio:

<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>

La solución <c:catch> Peter Hart también parece ser una buena opción.


Para JBoss eap 6 en standalone.xml, agregue el siguiente código debajo de subsytem web.

<configuration> <jsp-configuration development="true" mapped-file="false"/> </configuration>

Se resolvió mi problema.


Para el servidor wildfly, En standalone.xml -> dentro del subsistema de abastecimiento: reemplace jsp-config con

<jsp-config development="true" mapped-file="false"/>


Parece que estás alcanzando un límite de método de 64k , probablemente debido a cómo Tomcat construye una clase a partir de tu JSP. Esta página sugiere cambiar tu estática incluye así:

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

Incluyendo dinámicas como esta para evitar el problema:

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