Solucionado (ver solução)
Solucionado
(ver solução)
6
respostas

Erro Listener Spring

boa tarde. Como não o meu projeto não rodou com JBossForge a coisa tá feia, aqui. Quem puder dar uma olhada no erro:

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

Orbigado

6 respostas
solução!

Olá Ronney, tudo bem ?

Aparentemente as classes do Spring não estão no classpath do projeto. O que ocorreu sobre o JBoss Forge?

Você não conseguiu criar o projeto com o forge ? Talvez você possa também criar manualmente o projeto com New -> Project -> Maven Project e usar o pom.xml do curso como base.

Como está a estrutura do seu projeto ?

Olá Rafael. Vamos lá.. 1 - Quanto ao classPath, todos os jar´s estão na aba Libraries do ClassPath 2 - Quanto JBossForge, não exibia as páginas das views. Esse projeto que estou usando foi criado como Maven na mão, mas o icone não é exibido como Maven e tenho a impressão de que quando altero o POM ele não é compilado, por isso fiz a associação dos JAR´s na unha. 3 - A estrutura está:

src
....main
........java
............com
................mkyoung
....................conf
....................controller
....................daos
....................models
........webapp
............pages(fiz a troca do nome no fonte também)
................produtos
................home.jsp
pom.xml

Novo erro:

aused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.mkyong.daos.ProdutoDAO' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}

Fazendo testes comentando parte do código vi que o erro passa a acontecer assim que faço o constructor do ProdutosController

Removi o constructor do Controller e apenas o fato de eu ter a anotação @Autowired, gera o erro

Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.mkyong.daos.ProdutoDAO' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}

Fala Ronney, tudo bem ?

Desculpe não conseguir responder antes. Esse erro que acontece agora diz que não existe nenhum bean (objeto gerenciado pelo Spring) do tipo ProdutoDao.

Para conseguir realizar a injeção da dependência no seu controller (através da @Autowired) o Spring precisa gerenciar o ProdutoDao. Ou seja, ProdutoDao também precisa se um bean (ou componente) do Spring.

Verifique se a classe ProdutoDao está anotada, por exemplo, com @Repository, o que a tornaria um componente gerenciado pelo Spring. Se nao estiver anotada o Spring não consegue instancia-la e fornecer ao controller.

Caso esteja anotada, verifique se o Spring está enxergando o pacote dos daos quando o sistema sobe. Pode ser que ele simplesmente não esteja lendo a classe quando do start da aplicação.

Abraço