Quindi ho a che fare con un codice di servlet legacy che gira su Websphere 7 (JDK 6). La configurazione dell’ambiente di sviluppo utilizza Tomcat 6 (JDK 6).
Se la tua risposta è sì per no. 2, hai una soluzione per questo su Tomcat 6 (JDK 6) oltre a scomporre il codice o utilizzare gli include dinamici?
La pianificazione non concorda con la modifica delle inclusioni statiche a quelle dinamiche principalmente perché la maggior parte delle pagine è abbinata al codice del modello di business, incluso il modello principale dell’app.
Sembra che tu stia colpendo un limite di 64k , probabilmente a causa del modo in cui Tomcat crea una class dal tuo JSP. Questa pagina suggerisce di modificare le tue statiche include in questo modo:
<%@ include file="test.jsp" %>
A include dinamici come questo per evitare il problema:
Ho esaurito i blocchi statici di html / jss / css che ho potuto esternare in jsp:include
(per lo più html non statico è rimasto) …
Puoi inserire il tuo file web.xml
, mappedfile impostato su false in modo da eliminare molte righe statiche che non sono necessariamente buoni blocchi da inserire in un include, ma si sumno per risparmiare spazio:
jsp org.apache.jasper.servlet.JspServlet ... mappedfile false ...
Anche la soluzione
Peter Hart sembra un’ottima opzione.
Meglio indicare direttamente dove cambiarlo come indicato nel seguente link: https://www.assetbank.co.uk/support/documentation/knowledge-base/byte-limit-exceeded-error/
Individua il file [Tomcat_Home] /conf/web.xml e cerca il file per “JspServlet”. Questo dovrebbe restituire un nodo xml di
contenente alcuni valori di
. Dovrai aggiungere un ulteriore
uguale al seguente.
mappedfile false
Questo è più chiaro e diretto per gli utenti di tomcat
Altre soluzioni di riferimento che, naturalmente, per lo più dette nel commento precedente, ma tutte in un punto da leggere, qui: http://answered.site/development-environment-setup-uses-tomcat-6-jdk-6-why-does- da-lavoro / 603017 /
Il problema si è verificato anche in tomcat-8 con JDK1.8 (Java8)
A volte rompere il tuo JSP in include non ha senso o non funziona. Un altro modo per forzare la suddivisione del JSP in metodi separati durante la compilazione consiste nel separare il tuo JSP in segmenti usando
.
Per JBoss eap 6 in standalone.xml aggiungi il codice sotto sotto web subsytem.
Ha risolto il mio problema.
Perché funziona su Websphere 7 e non su Tomcat 6
Perché hanno diversi compilatori JSP che traducono i JSP in un diverso codice Java. Il compilatore JSP Tomcat (Jasper) sembra non essere in grado di gestire grandi JSP.
Forse la prossima domanda è, è ansible modificare il limite di dimensioni del metodo della JVM?
No. Questi limiti sono cablati nel formato / struttura dei file di class.
I dettagli sono nella specifica JVM … ma è piuttosto complicato, e non è del tutto chiaro dalla tua domanda quale limite hai colpito. (Ma questo è immateriale … non possono essere cambiati).
Oggi sono incappato in questo problema
Il mio problema è stato risolto con Tomcat 8.0.30 anziché Tomcat 8.0.39
Impostando il parametro di inizializzazione “mappedFile” su “false” ha funzionato per me.
Ma usando il plug-in di eclipse un po ‘di tempo viene rimosso e deve essere nuovamente impostato su tomcat home.
Per il server wildfly, in standalone.xml -> sottosistema sottotampo: sostituire jsp-config con
Eidt: Data soluzione non era una soluzione, ma missinterpreation (il problema non può essere riprodotto su tutte le versioni di tomcat) mi dispiace.