2011-01-15 41 views
9

Soy nuevo en jsp y me encontré con algunos problemas. Inicialmente, el archivo jsp y las clases java asociadas se construyeron y probaron bien en un servidor Tomcat de prueba. Ahora, han sido trasladados a otro servidor de lo que creo que es la misma configuración (excepto que ahora es Linux en lugar de Windows). Pero cuando se accede a la página jsp, se muestra el código fuente en lugar de la ejecución de jsp. He buscado en Google por un tiempo pero no he tenido éxito.JSP que muestra el código fuente en lugar de ejecutar

Este es el código del archivo JSP que estoy probando:

<HTML> 
<BODY> 
Hello! The time is now <%= new java.util.Date() %> 
</BODY> 
</HTML> 

Y aquí es lo que veo en mi navegador cuando se navega a la página:

Hello! The time is now <%= new java.util.Date() %> 

La fuente de la página es el código exacto que se escribe en el archivo de ejemplo:

<HTML> 
<BODY> 
Hello! The time is now <%= new java.util.Date() %> 
</BODY> 
</HTML> 

El servidor parece estar funcionando. Aquí están las cabeceras de respuesta es la que he obtenido a partir de Firebug:

Date Sat, 15 Jan 2011 20:53:24 GMT 
Server Apache/2.2.3 (CentOS) 
Last-Modified Sat, 15 Jan 2011 02:20:18 GMT 
Etag "b385d8-55-499d931205c80" 
Accept-Ranges bytes 
Content-Length 85 
Content-Type text/html; charset=UTF-8 

había pensado que this page podría resolver el problema, ya que no había ninguna referencia al archivo JSP que estaba usando, o incluso los siguientes fragmentos en mi archivo web.xml en la carpeta WEB-INF:

<servlet> 
    <servlet-name>jsp</servlet-name> 
    <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class> 
    <init-param> 
     <param-name>logVerbosityLevel</param-name> 
     <param-value>WARNING</param-value> 
    </init-param> 
    <load-on-startup>3</load-on-startup> 
</servlet> 
<servlet-mapping> 
    <servlet-name>jsp</servlet-name> 
    <url-pattern>*.jsp</url-pattern> 
</servlet-mapping> 

Intenté insertar estas líneas y reiniciar Tomcat, pero no tuve éxito. ¿Algunas ideas?

+1

¿Estás seguro de que la solicitud llega realmente a Tomcat? ¿Hay otro servidor web en frente? ¿Qué hay de los servlets? ¿Funcionan? – Thilo

+0

¿Qué tiene exactamente en el JSP y qué es exactamente lo que está viendo en el navegador? ¿Qué es exactamente en la fuente HTML? (haga clic con el botón derecho en el navegador, elija * Ver fuente *) Me interesaría qué quiere decir exactamente con "código fuente". ¿Las etiquetas JSP? Etiquetas JSTL? EL? Scriptlets? O incluso HTML? No necesita publicar el código completo, solo el archivo JSP mínimo que muestra el comportamiento es suficiente. – BalusC

+1

@Thilo: si la solicitud no llega a Tomcat, no habría visto nada del JSP, y mucho menos del código fuente. Sin embargo, espero que OP no sea tan tonto como para dejar caer archivos JSP en el otro servidor web en lugar de Tomcat :) – BalusC

Respuesta

2

Desde las cabeceras de respuesta:

servidor Apache/2.2.3 (CentOS)

Esto no es servido por Apache Tomcat, sino por Apache HTTPD. No lo desplegó en absoluto para Tomcat.

+0

"@Thilo: si la solicitud no llega a Tomcat, no habría visto nada del JSP, menos aún del código fuente. Sin embargo, espero que el OP no sea tan obvio como para dejar caer los archivos JSP en el otro servidor web. en lugar de Tomcat :) ":-) – Thilo

1

¿Vea dónde dice "logVerbosityLevel" y "WARNING"? Cambiar ADVERTENCIA a DEPURAR. También puede encontrar su script catalina.sh y encontrar su comando java y asegurarse de que el indicador -DDEBUG esté incluido en las opciones de inicio.

Al buscar en el registro con el modo de depuración completa, se le indicará si hay algún problema al iniciar Tomcat en el nuevo servidor.

Por ejemplo, puede que falte una dependencia o un conflicto de dependencia que no se muestre con menos niveles de registro informativo.

Por último, ¿ha probado una simple página de prueba JSP?

 <% out.println("Hello"); %> 

Si pones que en un JSP y tratar de cargarlo, ¿cree que la JSP o la salida?

¿Ha intentado utilizar el puerto Tomcat en su solicitud? Por lo general, este es 8080. Creo que uno de los comentaristas lo mencionó como una posibilidad.

2

Acabo de tener este mismo problema, que es la forma en que tropecé con esta publicación. Para mí, resultó que el problema era la diferencia entre CATALINA_HOME y CATALINA_BASE. Creo que mucha gente no se da cuenta de que se trata de dos lugares diferentes. En mi Ubuntu, CATALINA_HOME estaba en/usr/share/tomcat6 pero CATALINA_BASE estaba en/var/lib/tomcat6.Importa porque debe colocar sus archivos jsp en CATALINA_BASE. Entonces, de hecho, diría que Tomcat no encontró su código, aunque su navegador encontró el archivo y lo exhibió felizmente para usted como lo hace con otros archivos de texto.

Espero que esto ayude a alguien más que viene aquí con el mismo problema: es mi primer intento de publicar una respuesta en StackOverflow.

Cuestiones relacionadas