Vários contextos com o mesmo erro de caminho ao executar o serviço da web no Eclipse usando o Tomcat

130

Este é o erro que recebi quando criei meu primeiro serviço da web Axis2 usando o Eclipse. Após escrever a turma, criei o serviço da web com o Apache Axis2. Quando clico no botão Iniciar servidor no eclipse, é exibida uma mensagem de erro:

Não foi possível publicar a configuração do servidor para o Tomcat v6.0 Server no host local.
Vários contextos têm um caminho "/ FirstApache".

FirstApache é o projeto web dinâmico que eu criei antes. Selecionei o projeto da web correto na parte de configuração no assistente de serviço da web.

Como posso consertar isso?

kkk
fonte

Respostas:

276

Procure o server.xmlarquivo e verifique suas <Context>tags, provavelmente existem várias definições para o mesmo caminho. Remova as duplicatas e deve funcionar para você.

Confira a resposta aqui .

Formate automaticamente o arquivo xml ( control+ shift+ f), pois a segunda <Context>tag pode estar na mesma linha, mas fora da janela de exibição e muito longe da visível.

Alex Ciminian
fonte
13
Você pode encontrar o arquivo server.xml no workspace \ .metadata \ .plugins \ org.eclipse.wst.server.core \ tmp0 \ conf (tmp0 mudança no caso de este não é o seu servidor padrão eclipse)
Repoker
Eu tive esse problema depois que criei uma cópia de um projeto dinâmico da web no eclipse java ee e tentei executar os JSPs na cópia. Como corrijo esse problema?
Erran Morad
Deve ser protegido para evitar outros "agradecimentos" inúteis. Um voto positivo para a resposta é melhor do que um comentário de agradecimento.
Dwhitz 17/05
Obrigado, está funcionando, mas estou confuso por que essa duplicação ocorre?
Sandip S.
Esta solução ainda funciona, estou usando o Tomcat 8.5 no Eclipse V2018-12
Raymund Arthur
70

No STS / Eclipse, vá para "project explorer" ou "package explorer" e existe uma pasta chamada "server". Abra-o e você encontrará o server.xmlarquivo. Dentro deste arquivo, na parte inferior, você encontra uma definição como

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

Você pode encontrar duplicatas da mesma definição que precisaria remover.

Daniel Adenew
fonte
1
Adicionando exclusão de servidores acrescentou, esta linha mais uma vez automaticamente
Vinayak Shedgeri
Se o aplicativo não iniciar mesmo depois disso, vá para a guia "Servidores" ao lado de Console e remova todos os módulos localizados na lista suspensa do nome do servidor. Execute o projeto novamente depois disso
Sameer Sinha
41

No Eclipse, acesse o projeto Servidores . Abra a árvore para a versão do Tomcat que você está usando. Abra o arquivo server.xml e verifique suas tags de contexto.

Angie Echevarria
fonte
28

No seu eclipse IDE no Project Explorer, acesse o server.xml como em:

insira a descrição da imagem aqui

E remova tags de contexto com referências duplicadas para o seu projeto:

insira a descrição da imagem aqui

Fernando Gomes
fonte
16

Vá para server.xmle "Context"procure uma tag com um nome de propriedade "docBase".

Remova as linhas duplicadas aqui. Em seguida, tente reiniciar o servidor.

Sireesh Yarlagadda
fonte
12

Vá para o projeto Servers no eclipse, na configuração do servidor de tempo de execução (no meu caso, Tomcat v7.0 Server em localhost-config), vá para o arquivo server.xml e procure pela tag <context>, normalmente você encontrará mais de uma tag de contexto , exclua-os e execute seu aplicativo no servidor apropriado que funcionará agora.

no meu caso, encontrei a tag 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
fonte
10

No eclipse usando o tomcat, basta abrir este arquivo server.xml e encontrar a tag Context e aqui você vê que o seu nome de contexto é mais do que um, basta excluir contextos inúteis e reiniciar o servidor.

insira a descrição da imagem aqui

Zeeshan Akhter
fonte
5
  1. Nas propriedades do seu projeto, escolha "Configurações do projeto da Web".
  2. Altere "Raiz de contexto".
  3. Limpe seu servidor
  4. agora você pode reiniciar seu servidor
Fakher
fonte
Excelente solução para desenvolvedores que usam mais de uma instância do mesmo aplicativo em locais diferentes nas estações de trabalho. Descobri que nem todas as instalações do Eclipse / Tomcat têm uma marca <Context> no arquivo server.xml.
Mindsect Team 08/08/19
5

Eclipse >> explorador de projetos >> servidores >> server.xml >> tag >> remova a tag duplicada do seu projeto

debika sadhukhan
fonte
3

Simplesmente remova o servidor no Eclipse e inclua o servidor tomcat novamente. do que encerrar o tomcat no arquivo tomcat / bin / shutdown.bat e iniciar o servidor no eclipse.

Fénix
fonte
2

Tente excluir o servidor tomcat existente no console do servidor. Se você não possui o console, pode ir para "Mostrar visualização -> servidor", excluir o servidor clicando com o botão direito do mouse e adicionar um novo servidor.

chethan bhounsley g
fonte
2

Se você estiver usando o Tomcat 7 e o Eclipse, clique no servidor Tomcat e vá para a guia módulos. Lá você encontrará a entrada duplicada. Remova a entrada e reimplemente o aplicativo. Você está pronto para ir agora.

SamDJava
fonte
2

Em uma nota relacionada, se você copiou um projeto ou em qualquer caso, tem o mesmo caminho de contexto para 2 projetos 'ativos', é necessário alterar o caminho de contexto de um deles, limpar as configurações do servidor tomcat e republicar os servidores

veja esta resposta mais detalhada

penguinsource
fonte
1

Eu já tive esse problema antes. Acabei de resolver expandindo a árvore do tomcat e excluindo a pasta que está causando o conflito. no seu caso é /FirstApache. depois de excluí-lo. então você a executa novamente, deve poder executar. Se isso acontecer novamente, exclua-o e tente novamente.

aPEARR
fonte
0

Remova o espaço ou a linha vazia em server.xml ou context.xml no início do seu código

DHARMA RAJU
fonte
0

No meu caso, encontrei caminhos duplicados em Servers / Tomcat5.5 em localhost-config / server.xml sob a tag. A remoção das duplicatas resolveu o problema.

MoneeK
fonte
0

Exclua org.eclipse.wst.server.core e org.eclipse.wst.server.ui de .metadata / .plugins do wrokspace

exclua o servidor do eclipse e reconfigure o servidor no eclipse.

Vivek Kamble
fonte
0

Este erro ocorre quando você copia um projeto além do passado e, em seguida, altera o nome desse projeto.

nesse caso, siga as etapas a seguir.

Etapa 1: você precisa editar seu arquivo web.xml. remova o servlet e o mapeamento de servlet dos projetos anteriores.

Etapa 2: acesse SERVER -> server.xml -> find context

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

agora você só precisa alterar o nome do caminho para o nome do projeto atual.

Boa sorte codificação feliz :)

Akib Sayyed
fonte
-1

Se você estiver usando o STS e seu servidor for Pivotal, clique duas vezes no servidor e vá para> guia Módulos> exibir Configurar os Módulos da Web neste servidor.> Você pode apenas remover os módulos e executar novamente.

Ganesh Giri
fonte
-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
fonte