java - servlet - La implementación de un archivo WAR me da un código de estado 404 en Tomcat?
tomcat 9 (9)
En tiempos más recientes, esta condición podría ocurrir si JAVA_HOME apunta a una versión anterior de Java que al código en el WAR. Tomcat podría usar JAVA_HOME para determinar JRE_HOME que muestra después de ejecutar startup.bat en el directorio BIN de Tomcat. Si bien Tomcat puede estar contento con la versión de Java que obtiene, para la aplicación esto podría no ser suficiente. En mi caso, Tomcat 8.0.49 se ejecutaba bien con JDK1.7, mientras que la aplicación no se inicializaba (sí, era una aplicación Spring Boot, WAR se estaba desempaquetando, pero eso es todo), sin dar ningún error. Después de configurar JAVA_HOME en la ubicación de JDK1.8, se resolvió el problema.
Soy bastante nuevo en Tomcat. Solo logré construir un proyecto y lo exporté como un archivo WAR. Intenté copiar manualmente un archivo WAR en la carpeta Tomcat y luego reiniciar. Creó la estructura de carpetas y todo, pero obtengo un código de estado 404 cuando intento acceder a la aplicación. Intenté implementarlo a través del panel de administración de Tomcat pero veo el mismo comportamiento. ¿Estoy haciendo algo fundamentalmente mal?
FWIW Tuve este problema y lo solucioné descubriendo que estaba accediendo al host incorrecto, como " http://wronghost:8080/why_is_this_war_not_there ", por lo que si dice "XX.war se implementó con éxito" en catalina.out / localhost. *. Eso puede ser una pista para los seguidores.
Has probado
localhost:8080/app
Suponiendo que su archivo de guerra es app.war?
Edite para comentar, entonces su web.xml está estropeado.
Me encontré con este problema, también.
Mi solución de rotonda simple es cambiar la ruta docBase.
el problema ocurre cuando
docBase=".../tomcat/webapps/app_name.war";
problema resuelto con
docBase=".../tomcat/webapps/app_foldername/web"
Mi mejor conjetura es que no ha configurado los archivos de bienvenida en su web.xml. Si vas a / app / necesitas tener algún archivo predeterminado disponible. Por lo general, las personas crearon un index.html o tienen una configuración de archivo de bienvenida para indicar al usuario el jsp correcto.
Suponiendo que tiene todos los privilegios con la instalación de Tomcat, intente ir a http://localhost:8080/manager/html/
, si no conoce la contraseña para ingresar a esa área, busque el archivo tomcat-users.xml
en su directorio ${tomcat-installation}/conf
, y eso debería tenerlo. Si no tiene entradas, querrá agregar una entrada como la siguiente:
<user username="username" password="password" roles="admin,manager" />
Vea si su aplicación se muestra en esa pantalla, y si lo hace, haga clic en el enlace y vea si eso lo lleva a alguna parte. Si no es así, sugiero seguir los consejos de ifishers y mirar los archivos de registro para ver si contiene algún error.
Pero a largo plazo, lo más probable es que algo esté jodido con el web.xml
su proyecto.
Tengo el mismo problema. Mi problema es que el nombre de mi aplicación y el nombre del archivo war son diferentes. He cambiado el nombre del archivo war a mi nombre de aplicación.
Aquí, cuando se implementa su aplicación, Tomcat extrae automáticamente su archivo war con el mismo nombre. En mi caso, mi nombre de servicio es my-web-service (es decir, https://localhost:8080/my-web-service/ ) y mi nombre de archivo war es MY-java-connector-0.0.1-SNAPSHOT.war (este es el nombre de la carpeta de mi proyecto). Ahora Tomcat está buscando la carpeta my-web = service y encuentra la carpeta epicor-java-connector-0.0.1-SNAPSHOT. así que cambia el nombre de la carpeta a my-web = service.war y está funcionando.
Tuve el mismo problema con tomcat y lo solucioné al forzar a mi IDE a crear un archivo web.xml. La mía faltaba. Desplegaría el proyecto pero todavía obtendría el error 404. Leí varios de estos tutoriales, pero fue en vano. Leí en alguna parte que el archivo web.xml necesitaba configurarse correctamente. Fui a buscar el archivo web.xml en la carpeta WEB-INF, y no había ninguna carpeta ni archivo web.xml. Hice un rápido google sobre cómo crear utilizando mi IDE y luego compilé mi programa con el resultado web.xml, y solucioné el problema. Espero que ayude. ¡Aclamaciones!
Tuve el mismo problema, mi problema era que estaba copiando el archivo a través de sftp directamente en el directorio webapps de tomcat, lo que podría haber causado un problema de sondeo que no se implementaba correctamente. Tomcat supervisa el directorio de aplicaciones web y cuando ve el .xml se resquebrajará y hará su trabajo. El problema es que tal vez no se haya copiado todo. :(
Lo mejor es crear una carpeta de pruebas, mover o copiar la guerra a esa carpeta y luego usar el comando linux mv para moverla a las aplicaciones web - mv es atómico, por lo que Tomcat no hará nada hasta que se complete la operación.
Mágico.
El crédito va a una publicación muy aleatoria que encontré en javarance, que a su vez lleva a: http://pub.admc.com/howtos/tomcat/ch02.html#stagedir-section
Espero que esto ayude a alguien más :)