_jspService sta superando il limite di 65535 byte

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

  1. Perché funziona su Websphere 7 e non su Tomcat 6?
  2. Questo è qualcosa legato al server delle applicazioni?

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.