java.lang.ClassNotFoundException en una carpeta específica - linux, jsp, tomcat

Hace unos meses, estaba haciendo cambios a esteaplicación web para un cliente. Es una aplicación web JSP con Tomcat como servidor web. Hice los cambios, los probé (por supuesto) y dejé la aplicación en manos del cliente. Han vuelto y me han mencionado que un área específica del sitio web no funciona. Entro y reviso el área, de hecho no estaba funcionando, pero estaba funcionando hace unos meses cuando realicé los cambios.

El problema se encuentra con un muy inusual. Cada página en el directorio en cuestión (/ tomcat / webapps / website / english / login) arroja una java.lang.ClassNotFoundException.

Para solucionar el problema, he intentado crear unJSP en blanco con "hello world" y sin codificación, y aún arroja una java.lang.ClassNotFoundException. Creo la misma página JSP fuera de este directorio y está bien

Pasos tomados para replicar este problema:

  1. Ingresé al directorio en cuestión (tomcat / webapps / website / english / login)
  2. Cree una página JSP llamada test.jsp que literalmente tenga solo "hello world" (sin codificación)
  3. En el navegador, navego a test.jsp. Lanza una java.lang.ClassNotFoundException
  4. Ingresé en el directorio uno desde el inicio de sesión (tomcat / webapps / website / english)
  5. Crea una página JSP llamada test2.jsp que literalmente tiene solo "hello world" (sin codificación)
  6. En el navegador, navego a la página test2.jsp. Funciona

Realicé otra prueba pero no pude encontrar el problema. Consulte a continuación algunos métodos realizados

  • Se movió la aplicación web a un directorio diferente (tomcat / webapps / website2). Todo, incluido el directorio / english / login, funciona
  • Eliminé el directorio de la aplicación web y recreé la ruta del directorio, sin dejar de darme la excepción
  • Permisos comprobados El directorio en cuestión tiene los mismos permisos que todo lo demás en la aplicación web (incluidos los archivos)

Con los resultados de las pruebas, creo que el problema es el directorio en sí (/ tomcat / webapps / english / login). Cada vez que muevo el directorio, todo funciona.

Eso sí, estaba haciendo cambios en la webaplicación usando un editor de texto (bloc de notas ++) no en eclipse, compilando la aplicación usando TeamCity (que compiló bien), el servidor se ejecuta bajo Linux y no tengo acceso al script de compilación, pero creo que se usa ANT como constructor

Entonces mi pregunta es, ¿qué está causando este problema? ¿Tener todos los archivos en un directorio específico para buscar una clase?

Cualquier pista / ayuda es muy apreciada. He estado trabajando en este problema por unos días. Es alucinante

¡Aclamaciones!

Respuestas

0 para la respuesta № 1

Verificaría la ruta de clase que se usa con PS -ef y buscaría el proceso. Los registros de errores deben apuntar a una clase específica. Esas dos pistas pueden ayudar a determinar si hay un problema de configuración o guerra.

Una posibilidad que he visto es que en un archivo de configuración tomcat, las rutas permitidas están explícitamente definidas. Además, un archivo de configuración podría asignar una ruta específica a una clase java.


0 para la respuesta № 2

Encontré la respuesta a mi propio problema.El problema se origina en Tomcat. El servidor web convierte el archivo JSP en un archivo .java y luego lo compila. Por alguna extraña razón, Tomcat no estaba haciendo esto para todos mis archivos en una carpeta específica.

La solución es ir a la carpeta de trabajo de Tomcat, desglosar hasta que vea el nombre de su webapp y elimine la carpeta. Esto obligará a Tomcat a reconstruir todas las páginas visitadas.

Una forma más segura (que no funcionó para mí.No eliminó la aplicación web en la carpeta de trabajo) es iniciar sesión en Tomcat y anular la implementación de la aplicación web. Esto debería eliminar la carpeta webapp en la carpeta de trabajo de tomcat.

Espero que esto ayude a quienes experimentan problemas similares


preguntas relacionadas
Menú