Múltiples contextos con el mismo error de ruta al ejecutar el servicio web en Eclipse con Tomcat

130

Este es el error que recibí cuando creé mi primer servicio web Axis2 usando Eclipse. Después de escribir la clase, creé el servicio web con Apache Axis2. Cuando hago clic en el botón de inicio del servidor en eclipse, aparece un mensaje de error:

No se pudo publicar la configuración del servidor para Tomcat v6.0 Server en localhost.
Múltiples contextos tienen una ruta de "/ FirstApache".

FirstApache es el proyecto web dinámico que creé antes. Seleccioné el proyecto web correcto de la parte de configuración en el asistente de servicio web.

¿Cómo puedo arreglar esto?

kkk
fuente

Respuestas:

276

Busque el server.xmlarchivo y verifique sus <Context>etiquetas, probablemente haya múltiples definiciones para la misma ruta. Elimine los duplicados y debería funcionar para usted.

Mira la respuesta aquí .

Formatee automáticamente el archivo xml ( control+ shift+ f) ya que la segunda <Context>etiqueta puede estar en la misma línea, pero fuera de la ventana gráfica y muy lejos de la visible.

Alex Ciminian
fuente
13
Puede encontrar el archivo server.xml en el área de trabajo \ .metadata \ .plugins \ org.eclipse.wst.server.core \ tmp0 \ conf (cambie tmp0 en caso de que este no sea su servidor predeterminado de eclipse)
Repoker
Recibí este problema después de crear una copia de un proyecto web dinámico en eclipse java ee e intenté ejecutar los JSP en la copia. ¿Cómo soluciono este problema?
Erran Morad
Debe protegerse para evitar otros "gracias" inútiles. Un voto positivo a la respuesta es mejor que un comentario de agradecimiento.
Dwhitz
Gracias, está funcionando, pero estoy confundido ¿por qué ocurre esta duplicación?
Sandip S.
Esta solución aún funciona, estoy usando Tomcat 8.5 en Eclipse V2018-12
Raymund Arthur
70

En STS / Eclipse, vaya a "explorador de proyectos" o "explorador de paquetes" y encontrará una carpeta llamada "servidor". Ábrelo y encontrarás el server.xmlarchivo. Dentro de este archivo, en la parte inferior, encontrará una definición como

<Context docBase="myproject" path="/myproject" reloadable="true"
   source="org.eclipse.jst.jee.server:myproject"/>

Es posible que encuentre duplicados de la misma definición que necesitaría eliminar.

Daniel Adenew
fuente
1
Agregando la eliminación de servidores agregados, esta línea una vez más automáticamente
Vinayak Shedgeri
Si la aplicación no se inicia incluso después de esto, vaya a la pestaña "Servidores" junto a Consola y elimine todos los módulos ubicados dentro del menú desplegable del nombre del servidor. Vuelva a ejecutar el proyecto después de esto
Sameer Sinha
41

En Eclipse, vaya al proyecto Servidores . Abra el árbol para la versión de Tomcat que está utilizando. Abra el archivo server.xml y verifique sus etiquetas de contexto.

Angie Echevarria
fuente
28

En su eclipse IDE en el explorador de proyectos, acceda al server.xml como en:

ingrese la descripción de la imagen aquí

Y elimine las etiquetas de contexto con referencias duplicadas para su proyecto:

ingrese la descripción de la imagen aquí

Fernando Gomes
fuente
16

Vaya server.xmly busque la "Context"etiqueta con un nombre de propiedad"docBase" .

Elimine las líneas duplicadas aquí. Luego intente reiniciar el servidor.

Sireesh Yarlagadda
fuente
12

Vaya al proyecto Servidores en eclipse, en la configuración de su servidor de tiempo de ejecución (en mi caso, Tomcat v7.0 Server en localhost-config) vaya a server.xml archivo luego busque la etiqueta <context>, normalmente encontrará más de una etiqueta de contexto , elimínelos y ejecute su aplicación en el servidor apropiado que funcionará ahora.

en mi caso encontré una etiqueta de contexto duplicada:

<Context docBase="my-project" path="/my-project" reloadable="true" source="org.eclipse.jst.jee.server:my-project"/&gt;&lt;Context docBase="my-project" path="/smartphone-selfcare" reloadable="true" source="org.eclipse.jst.jee.server:my-project"/></Host>
sofiene zaghdoudi
fuente
10

En eclipse usando tomcat, solo abre este archivo server.xml y encuentra la etiqueta de contexto y aquí verá que su nombre de contexto es más que uno que simplemente elimina contextos inútiles y reinicia su servidor, funcionará ...

ingrese la descripción de la imagen aquí

Zeeshan Akhter
fuente
5
  1. En las Propiedades de su proyecto, elija "Configuración del proyecto web".
  2. Cambiar la "raíz de contexto".
  3. Limpia tu servidor
  4. ahora puedes reiniciar tu servidor
Fakher
fuente
Excelente solución para desarrolladores que utilizan más de una instancia de la misma aplicación en diferentes ubicaciones en sus estaciones de trabajo. Descubrí que no todas las instalaciones de Eclipse / Tomcat tienen una etiqueta <Context> en su archivo server.xml.
Mindsect Team
5

Eclipse >> explorador de proyectos >> servidores >> server.xml >> etiqueta >> eliminar etiqueta duplicada de su proyecto

debika sadhukhan
fuente
3

Simplemente elimine el servidor en Eclipse y agregue el servidor Tomcat nuevamente. que apague el tomcat en el archivo tomcat / bin / shutdown.bat e inicie el servidor en eclipse.

Fénix
fuente
2

Intente eliminar el servidor tomcat existente en la consola del servidor. Si no tiene la consola, puede ir a "Mostrar vista -> servidor", eliminar el servidor haciendo clic derecho sobre él y luego agregar un nuevo servidor.

chethan bhounsley g
fuente
2

Si está utilizando Tomcat 7 y Eclipse, haga clic en el servidor Tomcat y luego vaya a la pestaña de módulos. Allí encontrará la entrada duplicada. Elimine la entrada y vuelva a implementar la aplicación. Eres bueno para ir ahora.

SamDJava
fuente
2

En una nota relacionada, si ha copiado un proyecto o, en cualquier caso, tiene la misma ruta de contexto para 2 proyectos 'activos', debe cambiar la ruta de contexto de uno de ellos, luego limpiar la configuración del servidor Tomcat y luego volver a publicar los servidores

ver esta respuesta más detallada

penguinsource
fuente
1

Tuve ese problema antes. Lo resolví expandiendo el árbol de tomcat y borrando la carpeta que está causando el choque. en tu caso es /FirstApache. después de eliminarlo. entonces lo vuelves a ejecutar, deberías poder correr. Si vuelve a ocurrir, bórrelo e intente nuevamente.

aPEARR
fuente
0

Elimine el espacio o la línea vacía en server.xml o context.xml al comienzo de su código

DHARMA RAJU
fuente
0

En mi caso, encontré rutas duplicadas en Servers / Tomcat5.5 en localhost-config / server.xml bajo la etiqueta. Eliminar los duplicados resolvió el problema.

MoneeK
fuente
0

Eliminar org.eclipse.wst.server.core y org.eclipse.wst.server.ui de .metadata / .plugins de wrokspace

elimine el servidor de eclipse y luego vuelva a configurar el servidor en eclipse.

Vivek Kamble
fuente
0

Este error ocurre cuando copia un proyecto que lo pasa y luego cambia el nombre de ese proyecto.

en tal caso, siga los siguientes pasos.

Paso 1: necesita editar su archivo web.xml. eliminar servlet y servlet-mapping de los proyectos anteriores.

Paso 2: llegó al SERVIDOR -> server.xml -> buscar contexto

Ejemplo: - Contexto docBase = "JSPandServletDemo" ruta = "/ JSPandServletDemo" reloadable = "true" source = "org.eclipse.jst.jee.server: JSPandServletDemo" />

ahora solo necesita cambiar el nombre de ruta a su nombre de proyecto actual.

Buena suerte feliz codificación :)

Akib Sayyed
fuente
-1

Si está utilizando STS y su servidor es Pivotal Simplemente haga doble clic en el servidor y vaya a> pestaña Módulos> pantalla Configurar los módulos web en este servidor.> Puede simplemente eliminar módulos y ejecutarlos nuevamente.

Ganesh Giri
fuente
-1
 //Trying to do more than one thing to the object in the same context, 
//the solution is to work on single context objects

public class SingletonContext<TContext>
    where TContext: DbContext,new()
{
    private static TContext _context;

    private SingletonContext()
    {

    }
    public static TContext GetInstance()
    {
        if (_context == null)
        {
            _context = new TContext();
        }
        return _context;
    }

}
Tugay ÜNER
fuente