"Servidor Tomcat v7.0 El servidor en localhost no se pudo iniciar" sin seguimiento de pila mientras funciona en la terminal

81

Así que obtuve este proyecto que funcionó bien antes del fin de semana (tengo otros problemas, pero al menos Tomcat se lanzó). Ahora, cuando intento iniciar el servidor Tomcat, inmediatamente aparece el siguiente error:

Server Tomcat v7.0 Server at localhost failed to start.

Sin embargo, puedo iniciar Tomcat sin problemas a través de Terminal, y este problema está ocurriendo en Eclipse ( Eclipse Java EE IDE para desarrolladores web. Versión: Juno Service Release 1 Build id: 20121004-1855 )

Recorrí varios foros tratando de encontrar una solución, ¡pero fue en vano! Ayude a alguien que lo necesite.

Marvin Effing
fuente
publicar el error de seguimiento de pila completo?
Ami
@ILLA no hay ninguno. Solo eso. Lo que es lo más extraño de todo esto ...
Marvin Effing
Buena pregunta, el error más extraño que he encontrado. Mime ocurrió en Fedora 17. El eclipse se descarga desde el repositorio de Fedora.
huahsin68
Resuelto eliminando una carpeta específica en la carpeta Servidores, eliminando el servidor en Eclipse y luego creando un nuevo servidor en Eclipse (pestaña Servidor)
CodyBugstein
4
Este es uno de los problemas comunes al que se enfrenta un desarrollador, por mi experiencia, puedo aconsejar que la mayoría de las veces el error se debe al archivo web.xml. Intente eliminar algunas etiquetas de servlet y mapeo de servlets recién creadas.
Prateek Joshi

Respuestas:

58

Para resolver este problema, debe eliminar el .snaparchivo ubicado en el directorio:

<workspace-directory>\.metadata\.plugins\org.eclipse.core.resources

Después de eliminar este archivo, puede iniciar Eclipse sin problemas.

Ami
fuente
33
por favor, ¿dónde está este archivo? no tengo tal archivo
William Kinaan
18
No hay tal archivo dentro de ese directorio.
MrYo
34
@MarvinEffing Eliminé este archivo, ¡pero no me ayudó!
Lrrr
1
Esto funcionó para mí, pero ¿puedes explicar por qué funcionó? ¿Qué es este archivo? ¿Por qué causa el error? Además, para las personas que no pueden ver el archivo: intenten reiniciar eclipse, eso es lo que tenía que hacer.
Kevin Workman
1
Después de eliminar el archivo snap (era 0.snap), fui a eclipse, hice clic derecho en el servidor y seleccioné Limpiar. Luego inicie el servidor y funcionará.
sunlover3
104
  1. Abra la pestaña Servidores desde Windows → Mostrar vista → menú Servidores

  2. Haga clic derecho en el servidor y elimínelo

  3. Cree un nuevo servidor yendo Nuevo → Servidor en la pestaña Servidor

  4. Haga clic en el enlace "Configurar entornos de ejecución ..."

  5. Seleccione el servidor Apache Tomcat v7.0 y elimínelo. Esto eliminará la configuración del servidor Tomcat. Aquí es donde muchas personas se equivocan: eliminan el servidor pero no eliminan el entorno de ejecución.

  6. Haga clic en Aceptar y salga de la pantalla de arriba ahora.

  7. En la siguiente pantalla, elija el servidor Apache Tomcat v7.0 y haga clic en el botón Siguiente.

  8. Vaya al directorio de instalación de Tomcat

  9. Haga clic en Siguiente y elija qué proyecto le gustaría implementar:

  10. Haga clic en Finalizar después de agregar su proyecto

  11. Ahora inicie su servidor. Esto solucionará el tiempo de espera del servidor o cualquier problema con la configuración del servidor anterior. Esta solución también se puede utilizar para solucionar problemas de "actualización de puertos que no se está llevando a cabo".

chandrsekar.LS
fuente
11
desafortunadamente esto no resuelve nada ... Eclipse Kepler, Windows 7 32 bit, Tomcat 7 ... Todavía estoy buscando la solución real
Miklos Krivan
2
Eliminé la configuración de tomcat del eclipse y agregué el servidor nuevamente. Trabajó para mi. Eclipse Juno.
user2771655
1
¡Muchas gracias amigo! Entonces, ¿eliminar el entorno de ejecución hizo el Tric?
Rahal Kanishka
1
como dijo @MiklosKrivan, esto no funciona para mí también, pero sin embargo, tengo curiosidad por saber por qué y cómo diablos funciona para otros y, a su vez, me interesa saber por qué no funciona para mí.
Nightfury
37

Para resolver este problema, debe eliminar la carpeta tmp en el siguiente directorio

<workspace-directory>\.metadata\.plugins\org.eclipse.wst.server.core

Si hay algún problema para eliminar esta carpeta, reinicie su eclipse y luego vuelva a eliminar esa carpeta.

jaideep
fuente
No veo el nombre de la carpeta. ¿Dónde está? Estoy usando ubuntu 12.04
MMMMS
@MMMMS, los archivos y directorios ocultos están precedidos por un punto. En la mayoría de los sistemas * nix, puede buscar dichos archivos y directorios con ls -a
FRK
22

En mi caso, el problema estaba en el xmlcódigo de alguna manera.

Mi web.xmlarchivo se veía así:

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
    <display-name>Archetype Created Web Application</display-name>

    <servlet>
        <servlet-name>index</servlet-name>
        <jsp-file>index.jsp</jsp-file>
    </servlet>

    <servlet-mapping>
        <servlet-name>index</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

</web-app>

pero lo cambié para que pareciera

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
    <display-name>Archetype Created Web Application</display-name>

</web-app>

y ahora el servidor se carga correctamente. Extraño.

CodyBugstein
fuente
2
Tuve un problema similar con una @WevServletanotación con una ruta incorrecta.
thomas88wp
2
exactamente @ thomas88wp, o usa la anotación @WebServlety elimina el mapeo de servlet o lo contrario. gracias, resolvió mi problema :)
L.Zaki
¡Gracias! ¡Me estaba arrebatando la cabeza, pero esto ayudó!
Shivangi Gupta
15

Servidor Tomcat v7.0 El servidor en localhost no se pudo iniciar.

Este error se resuelve después de tres casos

1.Proyecto y servidor limpios

O

2.Retire el archivo .snap de este directorio

<workspace-directory>\.metadata\.plugins\org.eclipse.core.resources

O

3.Retire el archivo temporal de este directorio

<workspace-directory>\.metadata\.plugins\org.eclipse.wst.server.core

fuente
1
Eliminé la carpeta temporal y ahora el servidor se inicia correctamente pero no ejecuta mi aplicación web.
Rahul Munjal
Trabajó para mí en Ubuntu 18.04 con Eclipse 2019-03 y Tomcat 8.5.43 :)
yanike
Haga clic derecho en Tomcat y limpiar
Chinmoy
13

Encontré este problema, porque defino el mapeo de servlet en la clase de servlet y web.xml.

Debe tener cuidado de verificar si ha definido el mapeo de servlet en su clase de servlet y web.xml

1) eliminar @WebServlet("...")

@WebServlet("/Login")
public class Login extends HttpServlet {
}

O

2) eliminar <servlet></servlet> <servlet-mapping></servlet-mapping>

<servlet>
    <servlet-name>ServletLogin</servlet-name>
    <servlet-class>Login</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>ServletLogin</servlet-name>
    <url-pattern>/login</url-pattern>
</servlet-mapping>

Razón:

Yo uso apache tomcat 7.0 que es compatible con servlet 3.0.

Con las anotaciones de Java EE, el descriptor de implementación estándar web.xml es

Opcional. Según la especificación del servlet 3.0 en

http://jcp.org/en/jsr/detail?id=315

C0de8ug
fuente
Definitivamente esto es todo. Estaba mapeando el mismo servlet dos veces, esta solución funcionó.
George
11

Ninguna de las respuestas mencionadas anteriormente funcionó para mí. Estoy usando Tomcat 9 en mi Eclipse IDE. Por lo tanto, probé los siguientes pasos en mi Eclipse Neon.

Paso # 1: Haga clic en la Serverspestaña para ver su servidor. En mi caso, se parece a lo siguiente:

ingrese la descripción de la imagen aquí

Paso # 2: Haga clic derecho en el servidor, seleccione Properties, verá la siguiente ventana. Haga clic en Switch Location, cambiará la ubicación a la que se muestra en la imagen de abajo desde la predeterminada, haga clic en Applyy luego OKpara cerrar la ventana.

ingrese la descripción de la imagen aquí

Paso # 3 Haga doble clic en el servidor Tomcat que abrirá la Overviewopción como se muestra en la imagen a continuación. La Server Locationsparte estaba activa para mí cuando lo hice (se muestra inactiva en la imagen porque ya lo hice al final y tengo mi servidor ejecutándose) eso y seleccioné la segunda opción de botón de radio que es Use Tomcat installation (takes control of Tomcat installation). Luego cerré esta opción, guardé los cambios cuando se me solicitó e inicié mi servidor. Comenzó a funcionar bien.

ingrese la descripción de la imagen aquí

Juan
fuente
1
¡Muchas gracias, esa es la única opción que funcionó para mí!
Mike B.
Esto resolvió el problema, gracias hombre. Es sorprendente que las soluciones que realmente funcionan obtengan pocos votos.
El método científico
7

En mi caso, el problema estaba en el archivo web.xml, donde olvidé preceder el patrón de URL con una "/" (por ejemplo, /login.do).

Lo que resolvió mi problema fue, como lo mencionó anteriormente @ Ajak6, agregar la API del servlet como una biblioteca JAR externa para el proyecto.

Sin embargo, encontré una mejor manera agregando Tomcat al tiempo de ejecución de destino de la siguiente manera;

1) proyecto> propiedades

2) en el menú lateral, seleccione "Tiempos de ejecución específicos"

3) seleccione Tomcat (haga clic en aplicar)

4) haga clic en Aceptar

Emad Abdelhamid
fuente
En mi caso, funcionó bien con Anotaciones, pero cuando agregué las configuraciones de servlet en web.xml, olvidé poner ese / y tuve este problema. Afortunadamente, esta fue una solución rápida. ¡Gracias Emad!
ppalancica
6

La creación de un nuevo espacio de trabajo también puede resolver este problema.

Vibhor Bhardwaj
fuente
32
eso sería huir del problema que no se resuelve.
Yauraw Gadav
1
En realidad no lo hará, porque probablemente sea algo en el mapeo del proyecto.
George
6

abra su archivo web.xml. (si no sabe dónde está, búsquelo en Google). Es así:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
.
.
.
.
</web-app>

justo debajo de la <?xml version="1.0" encoding="UTF-8"?>línea, agregue una etiqueta <element>y ciérrela en la parte inferior con una </element>etiqueta. Hecho.

djangodude
fuente
Se inició y desapareció el error. Pero no escucha. ¿Para qué es el elemento?
Yergalem
5

Tuve el mismo problema en mi servidor tomcat, pero cuando revisé profundamente, descubrí que agregué una nueva etiqueta en mi archivo web.xml y el servidor no la acepta, así que verifique su archivo para ver si ocurrió alguna actualización, luego reinicie su tomcat y será bueno .

REDA
fuente
1
Había confundido entre <servlet> y <servlet-mapping> en mi web.xml y obtuve este error. ¡Gracias! tu solución funcionó para mí.
Aafreen Sheikh
1
ok, bien por ti, también funcionó para mí y, por supuesto, si te confundes entre ellos, el servidor no se iniciará porque <servlet> se definió en el contenedor y <servlet-mapping> Mapeo con servlet y url para las solicitudes http.
REDA
Dios mío, no puedo creer. Tuve el mismo problema. Gracias tío, no puedo decirte cuánto te estoy agradecido.
Rakesh Yadav
3

Todo funcionó bien un segundo y luego mi servidor comenzó a darme este error. Revisé todas las respuestas mencionadas aquí y lo que funcionó para mí fue esta solución simple:

Eliminar el servidor y luego configurar uno nuevo

Si está seguro de que no cambió nada y el error apareció, NO comience a eliminar archivos .snap u otros archivos temporales. Hacer eso solo causará más problemas. Y si el error ocurrió debido a algunos cambios realizados por usted, este error definitivamente se debe a algunos errores en el archivo web.xml.

PD: Cambiar el espacio de trabajo no le servirá de nada, porque si el problema está en su proyecto, ¡seguirá ocurriendo en el nuevo espacio de trabajo cuando importe el proyecto!

usuario2851347
fuente
2

Intente eliminar el servidor Tomcat existente en la consola del servidor, si no tiene la consola, puede ir a "Mostrar vista -> servidor" y luego eliminar el servidor haciendo clic derecho sobre él. Agregue un nuevo servidor, esto seguramente lo ayudará.

chethan bhounsley g
fuente
He leído todos los comentarios ... esta es la única opción que me funcionó.
Vineela Thonupunuri
2

Tuve el mismo problema, y ​​ninguna de las respuestas aquí ayudó a mi caso. Entonces, después de varias horas de búsqueda, encontré la solución para mí y espero que ayude a alguien más.

Esta es una solución para cualquiera que obtenga el "Servidor Tomcat v7.0 El servidor en localhost no pudo iniciarse". error después de configurar el servidor tomcat en eclipse e intentar ejecutar un proyecto en él.

Después de configurar el servidor tomcat en eclipse, debe copiar el directorio "WEB-INF" de su tomcat. C: \ ...% TOMCAT_HOME% \ webapps \ ROOT y encontrará el "WEB-INF", simplemente cópielo y péguelo en su carpeta WebContent en su proyecto eclipse (sobrescriba el archivo web.xml).

Espero que esto ayude.

ChicoDelaBarrio
fuente
2

en mi caso, el error fue que no pudo encontrar servlet-api.jar. No sé por qué de repente comenzó a dar error por eso. Porque anteriormente se estaba ejecutando sin ningún problema. Después de proporcionar servlet-api.jar en la opción de ruta de construcción, el servidor se inició correctamente.

Ajak6
fuente
después de probar todo lo anterior, esto realmente me guió. FUE NO DISPONIBILIDAD DE ALGUNAS DEPENDENCIAS
Young Emil
2

En mi caso, implementé mi carpeta tomcat (la que tiene todos los archivos) en otro lugar.

Luego, cuando comencé eclipse e intenté ejecutar mi proyecto con jsp y servlets, obtuve este mismo error.

Probé todas las respuestas aquí, pero aún así no cambió nada. La solución para mí fue poner todos los archivos JAR de tomcat en la biblioteca del proyecto así:

  1. Ir a Eclipse
  2. Haga clic derecho en el proyecto en el que trabaja> Ruta de compilación> Configurar ruta de compilación ...> Bibliotecas> Agregar archivos JAR externos
  3. seleccione todos los archivos JAR de Tomcat / bin y Tomcat / lib
  4. Presiona OK"

Ahora debería encontrarlos en la carpeta de Bibliotecas de su proyecto y luego debería funcionar.

Iwan Cuche
fuente
2

1-Vaya al directorio de su espacio de trabajo ».metadata» .plugins »carpeta org.eclipse.wst.server.core.

2- Elimina la carpeta tmp.

3- Reinicia tu Eclipse IDE

fatma yakut
fuente
1

En mi espacio de trabajo de eclipse, se resolvió siguiendo los pasos a continuación. Ventana -> Preferencias -> Conexiones de red -> Cambie 'Proveedor activo' a 'Directo', en lugar de 'Nativo'. Puede intentarlo.

Pijush
fuente
1

Este fin de semana me enfrentaba a un problema similar. Probé todos los trucos mencionados anteriormente, pero ninguno me funcionó. (Trabajando en Eclipse LUNA)

Luego analicé que justo antes de crear un servlet en particular, estaba ejecutando Apache Tomcat v7.0 con éxito. Que era "RefreshServlet" como se muestra a continuación:

RefreshServlet.java

Así que practicando servlets para entender el funcionamiento de "AutoRefresh". Cuando elimino este servlet de mi aplicación, funciona bien, pero cuando intento agregar y ejecutar este servlet, aparece el mismo error "Apache Tomcat v7.0 no se pudo iniciar"

No sé por qué, pero solo eliminar este servlet funciona bien para ejecutar el resto de mi aplicación.

Entonces, la sugerencia final de mi parte sería que si ningún otro truco está funcionando, intente eliminar cualquier servlet más reciente o cualquier clase que acaba de crear antes de recibir este error y puede funcionar bien para usted también para el resto de la aplicación.

Se agradecería cualquier explicación adicional. Gracias

NIKHIL CHAURASIA
fuente
1
Es posible que tenga varios servlets escuchando en la misma URL, lo que hará que Tomcat no se inicie.
alttag
1

Verifique su descriptor web (web.xml) o en sus servlets (donde haga anotaciones, verifique algo como '@WebServlet ("/ servlet_name")') en busca de duplicados. Si los hay, elimínelos.

Mwangi Thiga
fuente
1

Solucioné este problema haciendo clic derecho en el servidor Tomcat en la pestaña Servidor y haciendo clic en "Limpiar directorio de trabajo Tomcat"

Hafiz Hamza
fuente
1
Esto es para lo que me ayudóServer Tomcat v8.5 Server at localhost failed to start.
Nipun Tharuksha
0

Puede hacer clic con el botón derecho en apache-tomcat, elegir propiedades y hacer clic en Restaurar valores predeterminados.

pkpk
fuente
0

En mi caso, el problema fue causado por un error de sintaxis en los argumentos que se pasan. Tenía un espacio entre la clave y el valor cuando usaba '-D'

es decir

-DMyArg= MyValue

en vez de

-DMyArg=MyValue
Kevin
fuente
0

haga doble clic en el servidor apache en la pestaña del servidor eclipse. ahora cambie el puerto de administración de tomacat a 8010, el puerto http cambie a 8082 y el puerto Ajp cambie a 8011.

sudeep biswas
fuente
0

Si todas las respuestas dadas no funcionan para usted, simplemente cambie su espacio de trabajo actual.

archivo-> cambiar espacio de trabajo

Resolvería tu problema.

Umesh
fuente
Última y buena opción. Pero algunos dolores de cabeza están ahí para cambiar el espacio de trabajo.
Sagar007
0

En mi caso, el problema fue con otra instancia de Tomcat que se estaba ejecutando. Lo detuve de los servicios y el problema se resolvió

Vishnu
fuente
0

Después de intentar todos los pasos mencionados anteriormente, el problema no se resolvió.

Finalmente se resolvió con los siguientes pasos.

1- Verifique el archivo .log dentro del directorio de su espacio de trabajo. Problema con la versión de Java

"Causado por: java.io.IOException: No se puede ejecutar el programa" C: \ jdk1.7.0_45 \ bin \ java ": Error de CreateProcess = 193,% 1 no es una aplicación Win32 válida en java.lang.ProcessBuilder.start (Desconocido Fuente) en java.lang.Runtime.exec (Fuente desconocida) en java.lang.Runtime.exec (Fuente desconocida) en org.eclipse.debug.core.DebugPlugin.exec (DebugPlugin.java:869) ... 80 más

Causado por: java.io.IOException: CreateProcess error = 193,% 1 no es una aplicación Win32 válida en java.lang.ProcessImpl.create (método nativo) en java.lang.ProcessImpl. (Fuente desconocida) en java.lang. ProcessImpl.start (fuente desconocida) "

He instalado JDK compatible con el sistema operativo correcto y el problema se resolvió. PD: He establecido explícitamente la ruta JDK a través de eclipse (Ventana-> preferencia-> JRE instalado) pero después de configurar la ruta JDK correcta, funciona bien para mí.

Saurabh Gupta
fuente
0

Primero verifique en su Web.xml que hay múltiples etiquetas <mapeo de servlet> con diferentes nombres. De ser así, elimine las no deseadas y Ejecute .. Esto debería funcionar bien

O

Para resolver este problema, debe eliminar el archivo .snap ubicado en el directorio.

Vaya a su espacio de trabajo de Eclipse que está utilizando Ruta -> workspace.metadata.plugins \ org.eclipse.core.resources \ snapfile

Elimina el archivo instantáneo.

Después de eliminar este archivo, elimine el servidor Tomcat luego también el tiempo de ejecución del servidor que está seleccionado como Apache tomcat. Luego, agregue el servidor nuevamente y vaya al proyecto -> Propiedades -> Facetas del proyecto -> En el lado derecho encontrará las pestañas Detalles y Tiempos de ejecución. Haga clic en Runtimes y marque la casilla de Apache que ya está allí (si no existe, agréguelo)

Cambie los números de puerto y ejecútelo.

Sravan Yadav Lingam
fuente
0

intente eliminar todas las dependencias de su proyecto del repositorio local de maven (.m2).

Ruta: C: \ Users \ user_name \ .m2 \ repository

cierre eclipse y ábralo de nuevo, descargará automáticamente todas las dependencias.

Isuru
fuente
0

Resolví mi problema cerrando todos los demás proyectos en eclipse simplemente.

azhar baloch
fuente