java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener

290

Eu incluí estes no Caminho da Construção :

  • todas as bibliotecas Spring
  • Biblioteca Apache Tomcat 7.0

O projeto ainda falha durante a inicialização:

SEVERE: Error configuring application listener of class org.springframework.web.context.ContextLoaderListener
java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1676)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1521)
    at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:415)
    at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:397)
    at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:118)
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4660)
    at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5226)
    at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5221)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
    at java.util.concurrent.FutureTask.run(FutureTask.java:138)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at java.lang.Thread.run(Thread.java:662)
Jun 2, 2011 11:07:38 AM org.apache.catalina.core.StandardContext listenerStart
SEVERE: Error configuring application listener of class org.springframework.web.context.request.RequestContextListener
java.lang.ClassNotFoundException: org.springframework.web.context.request.RequestContextListener
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1676)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1521)
    at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:415)
    at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:397)
    at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:118)
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4660)
    at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5226)
    at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5221)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
    at java.util.concurrent.FutureTask.run(FutureTask.java:138)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at java.lang.Thread.run(Thread.java:662)
Jun 2, 2011 11:07:38 AM org.apache.catalina.core.StandardContext listenerStart
SEVERE: Error configuring application listener of class com.sun.faces.config.ConfigureListener
java.lang.ClassNotFoundException: com.sun.faces.config.ConfigureListener
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1676)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1521)
    at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:415)
    at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:397)
    at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:118)
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4660)
    at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5226)
    at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5221)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
    at java.util.concurrent.FutureTask.run(FutureTask.java:138)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at java.lang.Thread.run(Thread.java:662)

Em org.sprintframework.web-3.1.0.M1.jar, eu posso ver o org.springframework.web.context.ContextLoaderListener.

Alguém no Google diz que isso spring.jardeve ser incluído, mas não vejo nenhum spring.jarna distribuição 3.x.

Eclipse 3.6.2
Tomcat 7

Edit: Alguém no Fórum da Primavera (offline) disse que "Atualizar dependências automaticamente" deve ser verificada nas Propriedades do projeto, mas não vejo nada parecido nas propriedades do projeto.

Emeraldhieu
fonte
1
feche o projeto, crie um novo local de trabalho, garanta as dependências no POM. i teve que enfrentar este problema, mas foi fixado após a correção nas dependências
MLS
Você pode postar o conteúdo da sua pasta .war / lib, por favor. Ou pelo menos tudo o que é. * Spring. * \. Jar.
Simeon
Mesmo se eu adicionasse a seguinte dependência ao pom, eu ainda estava tendo o mesmo erro. <dependency> <groupId> org.springframework </groupId> <artifactId> spring-web </artifactId> <versão> {Spring-Version} </version> </dependency> O que eu fiz foi quando outros sugeriram que eu adicionei o maven dependências para o conjunto de implantação. E quando eu atualizo o pom com outras dependências e fazendo o projeto maven> update, o erro continua chegando. Inspecionar o conjunto de implantação mostra que dependências importantes estão sendo expulsas. Eu tive que refazer o processo acima novamente.
Tadele Ayelegn
1
Esta solução funcionou para a maioria. Adicione dependências ao conjunto de implantação.
lokesh 12/09

Respostas:

777

Eu tive um problema semelhante ao executar um aplicativo Web da primavera em um tomcat gerenciado pelo Eclipse. Resolvi esse problema adicionando dependências automatizadas no assembly de implantação da web do projeto.

  1. Abra as propriedades do projeto (por exemplo, clique com o botão direito do mouse no nome do projeto no explorador de projetos e selecione "Propriedades").
  2. Selecione "Conjunto de implantação".
  3. Clique no botão "Adicionar ..." na margem direita.
  4. Selecione "Java Build Path Entries" no menu do tipo de diretiva e clique em "Next".
  5. Selecione "Dependências do Maven" no menu Java Path Path Entries e clique em "Finish".

Você deverá ver "Dependências do Maven" adicionadas à definição do Conjunto de Implantação da Web.

Marcelo
fonte
6
É assim que você deve fazer, da maneira correta no eclipse.
pap
18
Eu estava tendo o mesmo problema. Mas não consigo ver 'Deployment Assembly' em 'Properties' (em um módulo do meu projeto multimodule maven).
precisa saber é o seguinte
9
Isso está correto, embora seja muito irritante. Talvez algo m2e plugin deve cuidar, na minha opinião.
RickB
10
Vejo Dependências do Maven adicionadas à definição do Conjunto de Implantação da Web, mas continuo recebendo o erro.
precisa saber é o seguinte
10
E se o Java Build Path Entries não contiver nada? Eu estou nesse caso.
vdolez
117

A mesma coisa acontece comigo de tempos em tempos ao usar o Eclipse WDT. É especialmente frustrante quando isso acontece com um projeto não modificado e que funcionava anteriormente. Isto é o que eu faço para corrigi-lo neste último cenário:

  1. Pare o Tomcat (se estiver em execução)
  2. Abra a visualização "Servidores": Janela> Mostrar visualização> Outros> Servidor> Servidores
  3. Clique com o botão direito do mouse em Tomcat Server> Limpar diretório de trabalho do Tomcat.
  4. Clique com o botão direito do mouse em Tomcat Server> Limpar
  5. Reinicie o servidor

Isso geralmente corrige o problema mencionado.

Chepech
fonte
3
Há um relatório de bug para essa situação específica ( bugs.eclipse.org/bugs/show_bug.cgi?id=365748 ). Os desenvolvedores do Eclipse precisam de mais informações sobre ele e maneiras de reproduzir o problema.
Chucky
1
Se esta é a solução flexível para todos, esta resposta deve ser marcada como resposta. Bom trabalho Chepech
Java Questions
3
Esta é realmente uma solução mais simples para esse problema. Obrigado Chepech!
Badal
2
Isso não me ajudou a usar o eclipse 4.4. Eu tive que usar o método de Susie remover / adicionar implantação ao tomcat. Eu estava monitorando a pasta de implantação do tomcat ao realizar as limpezas. Não sei por que a limpeza não limpa a pasta de implantação.
Blessed Geek
1
O assembly de implantação é o caminho certo para fazê-lo, mas se não funcionar devido a alguma corrupção ou outros enfeites, essa limpeza realmente o corrigirá.
Calabacin
26

Você pode tentar "Limpar o Tomcat Work Directory" ou simplesmente "Limpar ..". Isso deveria descartar todo estado publicado e republicar do zero.

Mashrur
fonte
Obrigado por esta solução! A resposta aceita acima não resolveu esse problema para mim, mas o seu resolveu.
GreenTurtle 9/10/12
25

Eu usei o IntelliJ IDEA, a compilação foi bem-sucedida, mas ao iniciar o Tomcat, ele diz:

Error configuring application listener of class org.springframework.web.context.ContextLoaderListener
java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener

No começo, pensei que o JAR estava faltando, mas estava no lugar.

Solução: File > Project Structure > Artifactsao Output Layoutclicar duas vezes no painel direito Available Elementsda biblioteca denominada like Maven:..., ela será movida para WEB-INF/libno painel esquerdo.

Aceite e reinicie o Tomcat.

乌鸦 不会 飞
fonte
Esta resposta não é exatamente relevante para a pergunta feita como OP estava usando Eclipse
Adam Michalik
10
Mas isso me ajudou.
precisa saber é o seguinte
8

Este é certamente um problema relacionado ao Eclipse. O que funcionou para mim é criar um novo servidor na guia eclipse server. Em seguida, execute seu aplicativo neste novo servidor, ele deve funcionar.

Aditya Gaikwad
fonte
7

Se tudo o que foi mencionado acima não funcionar, tente o seguinte. Funcionou para mim.

Remova seu projeto do servidor> Reinicie o servidor> Adicione seu projeto ao servidor> Reinicie o servidor.

Instrução detalhada:

1. Right click on server > Add and Remove
2. Select your project > Remove > Finish
3. Restart your server
4. Right click on server > Add and Remove
5. Select your project > Add > Finish
6. Restart your server again.
Susie
fonte
5

Eu estava enfrentando o mesmo problema em um projeto eclipse configurado para o tempo de execução do Tomcat 7

Clique com o botão direito do mouse no projeto e vá para as propriedades do projeto. Clique em Deployment Assembly. Percebi que os frascos da minha biblioteca da primavera que eu criei durante o tempo de compilação com uma biblioteca do usuário estavam ausentes. Basta adicionar os frascos e você não verá erros no console durante a inicialização do tomcat

abhi
fonte
5

Se você estiver usando o maven, talvez o projeto ainda não tenha sido construído. Primeiro faça um mvn clean packagee tente reimplementar novamente.

gouki
fonte
Eclipse 3.6.2 + Tomcat 7
emeraldhieu
4

Solução para o Eclipse Luna:

  1. Clique com o botão direito no projeto da web maven
  2. Clique no menu 'Propriedades'
  3. Selecione 'Conjunto de implantação' no lado esquerdo da janela pop-up
  4. Clique no botão 'Adicionar ...' no lado direito da janela exibida
  5. Agora, aparece mais uma janela pop-up (Novas Diretivas de Montagem)
  6. Clique em 'Entradas do Caminho de Construção Java'
  7. Clique no botão 'Next'
  8. Clique no botão 'Finalizar', agora feche automaticamente a janela pop-up Novas diretivas de montagem
  9. Agora clique no botão 'Aplicar' e no botão OK
  10. Execute seu aplicativo da web
Radhakrishnan S
fonte
4

Se você estiver usando o IntelliJ IDEA e implantar o aplicativo no Tomcat Server, será exibido: No menu Arquivo -> selecione Estrutura do projeto -> clique em artefato -> selecione seus jars e clique com o botão direito do mouse -> coloque WEB \ lib -> reinicie o servidorinsira a descrição da imagem aqui

harun ugur
fonte
3

Na verdade, este é um problema do Tomcat. Vá para a pasta 'lib' do seu projeto e copie todos os seus jarros relacionados à 'Spring' para isso. Atualize seu projeto e você estará pronto para prosseguir. Esse problema persiste algumas vezes porque o tomcat não consegue localizar as classes principais do Spring.

Rahul Sharma
fonte
2

Eu também tive o mesmo erro. Eu não adicionei a dependência abaixo no meu arquivo POM.

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-web</artifactId>
    <version>4.1.7.RELEASE</version>
  </dependency>

Mas meu porject costumava ser executado antes mesmo de eu adicionar essa dependência. Mas em um ponto ele parou e começou a dar o mesmo erro acima.

Se alguém não conseguiu resolver esse erro, também pode resolver por este link


fonte
1
<dependency> <groupId> org.springframework </groupId> <artifactId> spring-web </artifactId> <versão> 4.1.6.RELEASE </version> </dependency> A adição disso ajudou a solucionar esse erro.
Ashutosh S 7/16
2

Eu tive o mesmo problema. Eu o resolvi adicionando dependência da Web da primavera no meu pom. Certifique-se de usar jar primavera-web que tem ContextLoaderListener classe estende ContextLoader implementos ServletContextListener e residir no org.springframework.web.context pacote. Eu usei 3.0.4.RELEASE

Asif Khan
fonte
1

Eu tentei o

  • projeto limpo mvn
  • limpar \ limpo
  • diretório de trabalho limpo do tomcat automaticamente
  • atualizar dependências

A única coisa que funcionou pelo menos temporariamente foi adicionar dependências Maven à definição de conjunto de implantação da Web

Mas isso não funciona para sempre! Depois de alguns dias, ele para de funcionar. Minha solução foi remover as dependências do Maven, aplicar alterações e adicionar dependências do Maven novamente.

Estou usando - eclipse Juno - maven incorporado - tomcat 7

Volker Demel
fonte
1

Para usuários gradle, ele funciona com as seguintes etapas

1) Pare e exclua o servidor tomcat da guia Servidores no eclipse

guia eclipse tomcat

2) limpe o webapp e o diretório de trabalho da instalação do tomcat , (Referência, Instruções: Limpar o cache do Tomcat e corrigir problemas JSP desatualizados )

$ rm -r /usr/local/AT7028/work/*
$ rm -r /usr/local/AT7028/webapps/WAR_NAME

3) limpar e eclipsar o projeto usando a ferramenta de construção

$ ./gradlew clean eclipse// aciona o comando respectivo para os mvnusuários,$ mvn clean package

4) configure um novo servidor Tomcat no eclipse e execute o projeto novamente.

prayagupd
fonte
1

Eu também enfrentei o mesmo problema .... e resolvi seguindo as etapas abaixo:

RC (clique com o botão direito do mouse no projeto da web) -> propriedades -> Conjunto de Implementação -> Incluir -> Entradas do Caminho de Construção Java -> Próximo -> selecione os arquivos jar que estão faltando -> próximo -> terminar

O aplicativo está sendo executado com sucesso ...

Neel
fonte
Eu tenho o erro do OP, mas não havia arquivos jar ausentes no meu assembly de implantação.
Blamkin86
1

Tenho o mesmo problema e o resolvi usando as etapas mencionadas acima. Mas não, quando tenho esse problema novamente e tento o seguinte,

RC (clique com o botão direito do mouse no projeto da web) -> propriedades -> Conjunto de Implementação -> Adicionar -> Entradas do Caminho de Construção Java -> Próximo ->

depois de clicar em Avançar, é apenas uma janela em branco com as opções Avançar e Finlandês desativadas. O que posso fazer agora?

Geo Thomas
fonte
1

Eu enfrentei o mesmo problema.

Acabou de remover o servidor da configuração e incluiu-o novamente após reiniciar o eclipse, adicionando-o ao ambiente de tempo de execução do servidor.

Ramashis
fonte
1

Para mim, a correção foi clicar com o botão direito do mouse no meu módulo de aplicativo da web> Maven> Atualizar Projeto

TheBakker
fonte
1

Uma solução rápida que eu prefiro e mais adequada para essa situação é simplesmente excluir a pasta .metadata do seu espaço de trabalho e importar seus projetos novamente. Se você tentar todas as outras opções, não garantirá o sucesso. Às vezes, as soluções acima funcionam em algum momento em que você passa horas preciosas para corrigir essa configuração.

Um dia eu decidi limpar minha estação de trabalho. Organizei os projetos em suas pastas adequadas de acordo com diferentes clientes. Como resultado, tudo ficou confuso. Depois de passar um dia inteiro, ele não acabou em um espaço de trabalho fixo. No dia seguinte, simplesmente excluí a pasta .metadata do espaço de trabalho e importei todos os projetos novamente. Bingo pronto.

biswarup bannerjee
fonte
1

Coloque <packaging>war</packaging>seu pom.xml se você estiver usando o Maven. Nesse caso, talvez seja com embalagem jar

Você deve ter bibliotecas do Maven no Deployment Assembly

Robson Martins
fonte
0

O uso da opção "Atualizar configuração do projeto" alterou o caminho de construção do projeto.

Correção: abra o menu "configurar caminho de construção ..." (clique com o botão direito do mouse no projeto) e corrija as opções incluídas / excluídas de cada pasta de origem. Isso funcionou para mim.

kiwifrog
fonte
0

Em muitos casos, é um problema de faceta java, a versão jdk ou jre ou jsp é diferente da face do projeto maven.

Ali.Mojtehedy
fonte
0

A solução real para mim foi instalar a "m2e-wtp - integração do Maven para WTP". A solução de Marcelo não é necessária nesse caso.

cristão
fonte
0

se nada acima funcionar, remova o .class da classe listener

<listener>
<listener-class>

org.springframework.web.context.ContextLoaderListener.class

</listener-class>
</listener>
Abdullah Alshammari
fonte
0

Isso funciona para mim ..

Clique com o botão direito do mouse no projeto da web maven Clique no menu 'Propriedades' Selecione 'Conjunto de implantação' no lado esquerdo da janela pop-up Clique em 'Adicionar ...' Botão no lado direito da janela pop-up Agora, aparece mais uma janela pop-up (Novas diretivas de montagem) Clique em 'Entradas do caminho de construção Java' Clique no botão 'Próximo' Clique no botão 'Concluir', agora feche automaticamente a janela pop-up Novas diretivas de montagem Agora clique no botão 'Aplicar' e no botão OK.

user6425667
fonte
0

Isso aconteceu comigo depois que eu fiz alterações no meu mapeamento Hibernate em um projeto IntelliJ usando Gradle. A simples reconstrução do projeto funcionou para mim.

Paciência Mpofu
fonte
0

Eu me deparei com isso algumas vezes por quarto. Dessa vez, tive um resumo mínimo de alterações no diff do git e acompanhei o problema para um caminho de classe redefinido (perdendo minha dependência WEB-INF / lib) no eclipse. Isso parece ocorrer sempre que eu puxo ou retiro projetos de pais / irmãos.

Há menções de adicionar seus jars spring à lib do contêiner da web do tomcat - isso é bom e é a maneira como a maioria dos servidores EE é executada. No entanto, esteja ciente de que, ao colocar a mola mais alta na árvore do carregador de classes no tomcat, você estará executando acima do nível do carregador de classes do seu contexto de guerra. Eu recomendo que você deixe as bibliotecas em um carregador de classes de nível inferior por / war.

Vemos o seguinte após um caminho .class truncado após uma alteração estrutural do projeto no eclipse.

Dec 18, 2016 11:13:39 PM org.apache.catalina.core.StandardContext listenerStart
SEVERE: Error configuring application listener of class org.springframework.web.context.request.RequestContextListener
java.lang.ClassNotFoundException: org.springframework.web.context.request.RequestContextListener

Meu caminho de classe foi redefinido e a dependência WEB-INF / lib foi removida.

<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
    <attributes>
        <attribute name="maven.pomderived" value="true"/>
        <attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
    </attributes>
</classpathentry>

por de volta

<attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>

e você ficará bem.

obrigado / Michael

Michael O'Brien
fonte
0

Eu obtive isso quando tinha a lib no meu caminho de construção, mas não no meu assembly de implantação. Além disso, quando eu tinha um context.xml ausente.

Noumenon
fonte