Limite de Tamanho do JSP

Alguém saberia me responder se um arquivo JSP tem limite de tamanho, pois meu arquivo tem 162KB e quando eu aumento pra 163KB este arquivo não consegue mais ser compilado.

Se tiver limite de tamanho, tem como aumentar este limite ou a única solução é quebrar este arquivo?

Aha! você chegou àquele famoso limite que na verdade está relacionado com um problema referente a arquivos .class.
É que um .class não pode ter mais de 64KB de constantes strings.
Deve haver alguma configuração no seu web container que dá para ajeitar um pouco o problema . Por exemplo, no Tomcat você pode setar em /conf/web.xml a opção trimSpaces = true e mappedFile = false, mas isso só ajuda um pouquinho só (talvez permita só mais uns 10 KB adicionais).

  <!--   mappedfile          Should we generate static content with one     -->
  <!--                       print statement per input line, to ease        -->
  <!--                       debugging?  [true]                            -->
  <!--                                                                      -->
  <!--   trimSpaces          Should white spaces in template text between   -->
  <!--                       actions or directives be trimmed?  [false]     -->

Como o arquivo .jsp está muito grande, isso sugere que você esteja com problemas de HTML mesmo.
Veja se é possível alterar o HTML original para usar CSS em vez de ficar explicitando todas as fontes e cores dentro dos tags.

EDIT - não expliquei direito. É que quando você escreve algo no seu JSP como

<span color="red" font="Tahoma 12">teste</p>

o JSP compiler gera um fonte java contendo algo como:

out.println ("<span color=\"red\" font=\"Tahoma 12\">teste</p>");

Ou seja, cada conteúdo do JSP é considerado como sendo uma constante string. Se o seu HTML original for grande, o código gerado pelo JSP Compiler também vai ficar enorme.

E pq alguem em sa consciencia na Terra iria querer ter um jsp com 160kb?

Rafael

Já desconfiava disso, mas como meu arquivo tem 162KB e o limite de compilação diz que é 64KB eu acabei descartando essa possibilidade. Neste arquivo eu já estou usando CSS. Acho que terei que quebrar o arquivo mesmo.

Estou usando Struts Tiles e JSF. Não tem código JSP.

Muito obrigado pela ajuda!

É porque na Terra existe projetos web enormes como portal de aplicações, onde há sistemas que possuem mais de 500 itens de menu e se não for bem estruturado e padronizado a manutenção desses sistemas ficarão cada vez mais complexas e acabarei perdendo minha sa consciencia. Aí posso entrar em fóruns para agredir os companheiros de discussão e sair com a consciencia tranquila, ao invés de ajudá-los.

padronizacao” e “manutencao” em arquivos gigantes? eh, realmente, eu que sou mau programador :wink:

Rafael

Se lembro bem, o webfear tem/tinha um opção que aliviava bastante esse problema, ele criava um arquivo com todas Strings do jsp serializadas. Isso permitia uns jsps de meio mega serem usados. Da uma olhada nas flags do compilador de jsps do teu servlet-container.

Fora isso o conselho do rafael é válido, um jsp desse tamanho ou é resultado de toneladas de includes (basicamente todos jsps da aplicação) ou um negocio medonho de grande. Em ambos os casos a manutenção fica um inferno, ainda mais com um zilhão de includes.

[quote=Rafael Steil]“padronizacao” e “manutencao” em arquivos gigantes? eh, realmente, eu que sou mau programador :wink:

Rafael[/quote]

Diria só um maL programador :wink: