Problemas com o uso de jsp pré-compilado

4 respostas
bbmoura

Estou tentando usar jsps pré-compilados, mas estou encontrando algumas dificuldades. Quero, se é que é possível, não precisar mandar o arquivo .jsp e fazer com que o servidor procure direto o arquivo .class do jsp pré-compilado.

o meu web.xml contem


index
index_jsp


index
/index.jsp

mas na hora de executar o tomcat da :
java.lang.ClassNotFoundException: index_jsp
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1340)

alguém poderia me ajudar a fazer o tomcat achar o arquivo .class, mesmo eu colocando na pasta que ele procura, ele n acha.

obrigado

4 Respostas

kina

não sei se desta forma funciona, pois você necessita do package…
mas qual o problema de enviar o JSP para o servidor?

fmeyer

vc precisa usar isso mesmo ??? deste jeito ??? vc tem certeza ???

bem se a resposta for sim … esses jsp compilados … que vc ta falando … chamados normalmente de servlets no mundo :stuck_out_tongue: devem ficar dentro da pasta WEB-INF/classes e geralmente dentro de algum package.

qqur duvida posta novamente

T

Você está no caminho certo. É que o jasper (compilador JSP) gera os arquivos .java referentes aos JSPs dentro do pacote org.apache.jsp (veja, isso depende do seu web container. Estou falando do Tomcat, poderia ser que o Websphere gerasse outro nome…)
Se você pôs os arquivos *_jsp.class em algum lugar no classpath, você tem de qualificá-los corretamente:

<servlet-class>org.apache.jsp.index_jsp</servlet-class>
bbmoura

na verdade o grande objetivo é não utilizar os arquivos .jsp e apenas os .class já compilados. Isto é, fazer que através do web.xml, o servidor ao invés de procurar o arquivo jsp para compilar, ele procure direto o jsp já compilado. Não tenho total certeza se isso é possível, mas estou estudando.

Thingol, já tentei utilizar o web.xml para apontar para org.apache.jsp, do modo que segue:

<servlet>
        <servlet-name>org.apache.jsp.index_jsp</servlet-name>
        <servlet-class>org.apache.jsp.index_jsp</servlet-class>
   </servlet>
   <servlet-mapping>
        <servlet-name>org.apache.jsp.index_jsp</servlet-name>
        <url-pattern>/index.jsp</url-pattern>
   </servlet-mapping>

mas mesmo assim ele da exceção:

javax.servlet.ServletException: Wrapper cannot find servlet class org.apache.jsp.org.apache.jsp.index_jsp or a class it depends on
org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:966)

não sei onde eu estaria errando.
obrigado

Criado 16 de maio de 2005
Ultima resposta 16 de mai. de 2005
Respostas 4
Participantes 4