it-swarm.com.de

_jspService überschreitet die Grenze von 65535 Bytes

Es handelt sich also um einen älteren Servlet-Code, der unter Websphere 7 (JDK 6) ausgeführt wird. Das Setup der Entwicklungsumgebung verwendet Tomcat 6 (JDK 6). 

  1. Warum funktioniert es in Websphere 7 und Nicht in Tomcat 6?
  2. Hat dies etwas mit dem Anwendungsserver zu tun?

Wenn deine Antwort ja für nein ist. 2, haben Sie für Tomcat 6 (JDK 6) eine Problemumgehung, abgesehen davon, dass Sie den Code zerlegen oder dynamische Includes verwenden?

Der Zeitplan stimmt nicht mit der Änderung der statischen Einschlüsse in dynamische Einschlüsse überein, da die meisten Seiten mit dem Geschäftsmodellcode einschließlich der Hauptvorlage der App gekoppelt sind.

21
setzamora

Es klingt, als ob Sie ein 64k-Methodenlimit erreichen würden, wahrscheinlich, weil Tomcat eine Klasse aus Ihrer JSP erstellt. Diese Seite schlägt vor, die Statik wie folgt zu ändern:

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

Zu dynamischen Enthält das folgende, um das Problem zu vermeiden:

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

Ich hatte keine statischen html/jss/css-Blöcke mehr, die ich in jsp:include auslagern konnte (meistens war nicht statisches html übrig) ... 

Sie können Ihre web.xml, mappedfile auf false setzen, um viele statische Zeilen zu entfernen, die nicht unbedingt gute Blöcke für ein Include sind, aber sie addieren sich, um Platz zu sparen:

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

Die <c:catch>-Lösung von Peter Hart klingt auch nach Nice-Option.

11

Richten Sie sich am besten direkt an den Ort, an dem Sie Änderungen vornehmen möchten, wie im folgenden Link angegeben: https://www.assetbank.co.uk/support/documentation/knowledge-base/byte-limit-exceeded-error/

Suchen Sie die Datei [Tomcat_Home] /conf/web.xml und suchen Sie die Datei nach 'JspServlet'. Dies sollte einen XML-Knoten von <servlet> zurückgeben, der einige <init-param>-Werte enthält. Sie müssen einen zusätzlichen <init-param> hinzufügen, der wie unten angegeben ist.

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

Das ist für Tomcat-Benutzer klarer und direkter

Andere Referenzlösungen, die vor allem in den vorherigen Kommentaren erwähnt wurden, jedoch alle an einem Ort zu lesen sind, hier: http://answered.site/development-environment-setup-uses-Tomcat-6-jdk-6-why- macht-es-Arbeit/603017/

Das Problem wurde auch in Tomcat-8 mit JDK1.8 (Java8) gefunden.

9
Osify

Für JBoss eap 6 in standalone.xml fügen Sie den folgenden Code unter Web-Subsystem hinzu.

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

Es hat mein Problem gelöst.

4
suresh sahu

Manchmal macht das Aufbrechen Ihrer JSP in Includes keinen Sinn oder funktioniert nicht. Eine andere Möglichkeit, Ihre JSP beim Kompilieren in getrennte Methoden zu unterteilen, besteht darin, Ihre JSP mit <c:catch> in Segmente aufzuteilen.

4
Peter J. Hart

Warum funktioniert es in Websphere 7 und nicht in Tomcat 6?

Weil sie unterschiedliche JSP-Compiler haben, die die JSPs in unterschiedlichen Java-Code übersetzen. Der Tomcat-JSP-Compiler (Jasper) kann offenbar nicht mit großen JSPs umgehen.

Vielleicht ist die nächste Frage, ob es möglich ist, die Größenbeschränkung für Methoden der JVM zu ändern.

Nein. Diese Grenzwerte sind fest mit dem Format/der Struktur von Klassendateien verbunden. 

Die Details sind in der JVM-Spezifikation ... enthalten, aber es ist ziemlich kompliziert und aus Ihrer Frage ist nicht ganz klar, welches Limit Sie erreicht haben. (Aber das ist unwesentlich ... sie können nicht geändert werden.)

2
Stephen C

Durch das Setzen des Initialisierungsparameters "mappedFile" auf "false" hat sich für mich gearbeitet. 

Wenn Sie jedoch das Eclipse-Plugin verwenden, wird es einige Zeit entfernt und muss in Tomcat nach Hause neu festgelegt werden.

1
Chaitu

Ich bin heute über dieses Thema gestolpert
Mein Problem wurde behoben, als ich Tomcat 8.0.30 anstelle von Tomcat 8.0.39 nahm 

1
Shinigami

Eidt: Die Lösung war keine Lösung, aber Missinterpreation (Problem kann nicht auf allen Tomcat-Versionen reproduziert werden).

0
Frank

Für den Wildfly-Server In standalone.xml -> im Subsystem subow: ersetzen Sie jsp-config mit

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