it-swarm.com.ru

_jspService превышает ограничение 65535 байт

Итак, я имею дело с устаревшим кодом сервлета, который работает на Websphere 7 (JDK 6). Настройка среды разработки использует Tomcat 6 (JDK 6). 

  1. Почему это работает на Websphere 7 и Не в Tomcat 6?
  2. Связано ли это с сервером приложений .__?

Если ваш ответ - да, то нет. 2, есть ли обходной путь для этого на Tomcat 6 (JDK 6), кроме разбивки кода или использования динамических включений?

Расписание не согласуется с изменением статических включений на динамические включения, главным образом потому, что большинство страниц связаны с кодом бизнес-модели, включая основной шаблон приложения.

21
setzamora

Похоже, вы достигли предела метода 64k , возможно, из-за того, что Tomcat создает класс из вашего JSP. Эта страница предлагает изменить ваши статические включения следующим образом:

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

Для динамических включений, как это, чтобы избежать проблемы:

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

У меня закончились статические блоки html/jss/css, которые я мог преобразовать в jsp:include (в основном остался нестатический html) ... 

Вы можете вставить в свой web.xml, mappedfile значение false, чтобы избавиться от многих статических строк, которые не обязательно являются хорошими блоками для включения, но они складываются для экономии места:

<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> от Peter Hart также звучит как хороший вариант.

11
armyofda12mnkeys

Лучше указать прямо, где его изменить, как указано в следующей ссылке: https://www.assetbank.co.uk/support/documentation/knowledge-base/byte-limit-exceeded-error/

Найдите файл [Tomcat_Home] /conf/web.xml и найдите в нем файл «JspServlet». Это должно вернуть XML-узел <servlet>, содержащий некоторые значения <init-param>. Вам нужно будет добавить дополнительный <init-param>, как показано ниже.

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

Это более понятно и понятно для пользователя Tomcat

Другие справочные решения, которые, конечно, в основном сказано в предыдущем комментарии, но все в одном месте, чтобы прочитать, здесь: http://anseded.site/development-environment-setup-uses-Tomcat-6-jdk-6-why- делает это/603017/

Проблема также обнаружена в Tomcat-8 с JDK1.8 (Java8)

9
Osify

Для JBoss eap 6 в standalone.xml добавьте приведенный ниже код под веб-подсистемой.

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

Это решило мою проблему.

4
suresh sahu

Иногда разбиение вашего JSP на включения не имеет смысла или не работает. Другой способ заставить ваш JSP разбиваться на отдельные методы при компиляции - это разделить ваш JSP на сегменты с помощью <c:catch>.

4
Peter J. Hart

Почему это работает на Websphere 7, а не на Tomcat 6

Потому что у них разные компиляторы JSP, которые переводят JSP в другой код Java. JSP-компилятор Tomcat (Jasper), очевидно, не способен работать с большими JSP.

Возможно, следующий вопрос заключается в том, можно ли изменить предел размера метода JVM?

Нет. Эти ограничения встроены в формат/структуру файлов классов. 

Подробности в JVM spec ... но это довольно сложно, и из вашего вопроса не совсем понятно, какой предел вы достигли. (Но это несущественно ... их нельзя изменить.)

2
Stephen C

Установив параметр инициализации "mappedFile" в "false", у меня получилось. 

Но с помощью плагина Eclipse он удаляется, и его нужно снова установить в Tomcat home.

1
Chaitu

Я наткнулся на этот вопрос сегодня
Моя проблема была решена, так как я взял Tomcat 8.0.30 вместо Tomcat 8.0.39 

1
Shinigami

Эйдт: Данное решение не было решением, но неправильное толкование (проблема не может быть воспроизведена на всех версиях Tomcat). Извините.

0
Frank

Для сервера wildfly: В standalone.xml -> внутри подсистемы undertow: замените jsp-config на

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