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

NullPointerException

Estava fazendo o curso, porém começou a dar a mensagem de erro NullPointerException, quando eu abria o Exlipse.

  • Desinstalei o JDK e instalei-o novamente, mas não resolveu.
  • Baixei novamente o Eclipse e o Tomcat, exclui o diretório onde estavam o Eclipse e Tomcat. Criei um novo diretório com os dois que eu baixei.
  • Configurei novamente o Workspace e adicionei o Tomcat, mas não resolveu.
  • Cliquei então em "Não me lembre mais."

  • Eu mando startar o Tomcat, e abro a url localhost:8080 - carrega normalmente. Mas agora quando clico no projeto, e depois Run on Server, gera erro 404.

No console:

fev 16, 2016 7:55:21 PM org.apache.tomcat.util.digester.SetPropertiesRule begin
ADVERTÊNCIA: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:vraptor-produtos' did not find a matching property.
fev 16, 2016 7:55:21 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMAÇÕES: Server version:        Apache Tomcat/8.0.30
fev 16, 2016 7:55:21 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMAÇÕES: Server built:          Dec 1 2015 22:30:46 UTC
fev 16, 2016 7:55:21 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMAÇÕES: Server number:         8.0.30.0
fev 16, 2016 7:55:21 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMAÇÕES: OS Name:               Windows 7
fev 16, 2016 7:55:21 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMAÇÕES: OS Version:            6.1
fev 16, 2016 7:55:21 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMAÇÕES: Architecture:          x86
fev 16, 2016 7:55:21 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMAÇÕES: Java Home:             C:\Program Files\Java\jre1.8.0_73
fev 16, 2016 7:55:21 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMAÇÕES: JVM Version:           1.8.0_73-b02
fev 16, 2016 7:55:21 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMAÇÕES: JVM Vendor:            Oracle Corporation
fev 16, 2016 7:55:21 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMAÇÕES: CATALINA_BASE:         C:\Eclipse\apache-tomcat-8.0.30
fev 16, 2016 7:55:21 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMAÇÕES: CATALINA_HOME:         C:\Eclipse\apache-tomcat-8.0.30
fev 16, 2016 7:55:21 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMAÇÕES: Command line argument: -Dcatalina.base=C:\Eclipse\apache-tomcat-8.0.30
fev 16, 2016 7:55:21 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMAÇÕES: Command line argument: -Dcatalina.home=C:\Eclipse\apache-tomcat-8.0.30
fev 16, 2016 7:55:21 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMAÇÕES: Command line argument: -Dwtp.deploy=C:\Eclipse\apache-tomcat-8.0.30\wtpwebapps
fev 16, 2016 7:55:21 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMAÇÕES: Command line argument: -Djava.endorsed.dirs=C:\Eclipse\apache-tomcat-8.0.30\endorsed
fev 16, 2016 7:55:21 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMAÇÕES: Command line argument: -Dfile.encoding=Cp1252
fev 16, 2016 7:55:21 PM org.apache.catalina.core.AprLifecycleListener lifecycleEvent
INFORMAÇÕES: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files\Java\jre1.8.0_73\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:/Program Files/Java/jre1.8.0_73/bin/client;C:/Program Files/Java/jre1.8.0_73/bin;C:/Program Files/Java/jre1.8.0_73/lib/i386;C:\ProgramData\Oracle\Java\javapath;C:\Program Files\Common Files\Microsoft Shared\Windows Live;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Windows Live\Shared;C:\Program Files\Common Files\Roxio Shared\DLLShared\;C:\Program Files\Common Files\Roxio Shared\10.0\DLLShared\;C:\Eclipse;;.
fev 16, 2016 7:55:22 PM org.apache.coyote.AbstractProtocol init
INFORMAÇÕES: Initializing ProtocolHandler ["http-nio-8080"]
fev 16, 2016 7:55:22 PM org.apache.tomcat.util.net.NioSelectorPool getSharedSelector
INFORMAÇÕES: Using a shared selector for servlet write/read
fev 16, 2016 7:55:22 PM org.apache.coyote.AbstractProtocol init
INFORMAÇÕES: Initializing ProtocolHandler ["ajp-nio-8009"]
fev 16, 2016 7:55:22 PM org.apache.tomcat.util.net.NioSelectorPool getSharedSelector
INFORMAÇÕES: Using a shared selector for servlet write/read
fev 16, 2016 7:55:22 PM org.apache.catalina.startup.Catalina load
INFORMAÇÕES: Initialization processed in 1248 ms
fev 16, 2016 7:55:22 PM org.apache.catalina.core.StandardService startInternal
INFORMAÇÕES: Starting service Catalina
fev 16, 2016 7:55:22 PM org.apache.catalina.core.StandardEngine startInternal
INFORMAÇÕES: Starting Servlet Engine: Apache Tomcat/8.0.30
fev 16, 2016 7:55:25 PM org.apache.jasper.servlet.TldScanner scanJars
INFORMAÇÕES: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
log4j:WARN No appenders could be found for logger (org.jboss.logging).
log4j:WARN Please initialize the log4j system properly.
fev 16, 2016 7:55:38 PM org.apache.catalina.core.StandardContext listenerStart
GRAVE: Exception sending context initialized event to listener instance of class org.jboss.weld.environment.servlet.Listener
org.jboss.weld.exceptions.DeploymentException: WELD-001408: Unsatisfied dependencies for type EntityManager with qualifiers @Default
  at injection point [BackedAnnotatedParameter] Parameter 1 of [BackedAnnotatedConstructor] @Inject public br.com.caelum.vraptor.dao.ProdutoDao(EntityManager)
  at br.com.caelum.vraptor.dao.ProdutoDao.<init>(ProdutoDao.java:0)

    at org.jboss.weld.bootstrap.Validator.validateInjectionPointForDeploymentProblems(Validator.java:361)
    at org.jboss.weld.bootstrap.Validator.validateInjectionPoint(Validator.java:282)
    at org.jboss.weld.bootstrap.Validator.validateGeneralBean(Validator.java:133)
    at org.jboss.weld.bootstrap.Validator.validateRIBean(Validator.java:164)
    at org.jboss.weld.bootstrap.Validator.validateBean(Validator.java:507)
    at org.jboss.weld.bootstrap.ConcurrentValidator$1.doWork(ConcurrentValidator.java:68)
    at org.jboss.weld.bootstrap.ConcurrentValidator$1.doWork(ConcurrentValidator.java:66)
    at org.jboss.weld.executor.IterativeWorkerTaskFactory$1.call(IterativeWorkerTaskFactory.java:60)
    at org.jboss.weld.executor.IterativeWorkerTaskFactory$1.call(IterativeWorkerTaskFactory.java:53)
    at java.util.concurrent.FutureTask.run(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

fev 16, 2016 7:55:38 PM org.apache.catalina.core.StandardContext startInternal
GRAVE: One or more listeners failed to start. Full details will be found in the appropriate container log file
fev 16, 2016 7:55:39 PM org.apache.catalina.util.SessionIdGeneratorBase createSecureRandom
INFORMAÇÕES: Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [143] milliseconds.
fev 16, 2016 7:55:39 PM org.apache.catalina.core.StandardContext startInternal
GRAVE: Context [/vraptor-produtos] startup failed due to previous errors
fev 16, 2016 7:55:39 PM org.apache.catalina.core.StandardContext listenerStop
GRAVE: Exception sending context destroyed event to listener instance of class org.jboss.weld.environment.servlet.Listener
java.lang.NullPointerException
    at org.jboss.weld.servlet.WeldInitialListener.contextDestroyed(WeldInitialListener.java:102)
    at org.jboss.weld.servlet.api.helpers.ForwardingServletListener.contextDestroyed(ForwardingServletListener.java:30)
    at org.jboss.weld.environment.servlet.Listener.contextDestroyed(Listener.java:85)
    at org.apache.catalina.core.StandardContext.listenerStop(StandardContext.java:4859)
    at org.apache.catalina.core.StandardContext.stopInternal(StandardContext.java:5478)
    at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:232)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:160)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1408)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1398)
    at java.util.concurrent.FutureTask.run(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

fev 16, 2016 7:55:39 PM org.apache.catalina.startup.HostConfig deployDirectory
INFORMAÇÕES: Deploying web application directory C:\Eclipse\apache-tomcat-8.0.30\webapps\docs
fev 16, 2016 7:55:39 PM org.apache.catalina.startup.HostConfig deployDirectory
INFORMAÇÕES: Deployment of web application directory C:\Eclipse\apache-tomcat-8.0.30\webapps\docs has finished in 88 ms
fev 16, 2016 7:55:39 PM org.apache.catalina.startup.HostConfig deployDirectory
INFORMAÇÕES: Deploying web application directory C:\Eclipse\apache-tomcat-8.0.30\webapps\examples
fev 16, 2016 7:55:39 PM org.apache.catalina.core.ApplicationContext log
INFORMAÇÕES: ContextListener: contextInitialized()
fev 16, 2016 7:55:39 PM org.apache.catalina.core.ApplicationContext log
INFORMAÇÕES: SessionListener: contextInitialized()
fev 16, 2016 7:55:39 PM org.apache.catalina.startup.HostConfig deployDirectory
INFORMAÇÕES: Deployment of web application directory C:\Eclipse\apache-tomcat-8.0.30\webapps\examples has finished in 561 ms
fev 16, 2016 7:55:39 PM org.apache.catalina.startup.HostConfig deployDirectory
INFORMAÇÕES: Deploying web application directory C:\Eclipse\apache-tomcat-8.0.30\webapps\host-manager
fev 16, 2016 7:55:39 PM org.apache.catalina.startup.HostConfig deployDirectory
INFORMAÇÕES: Deployment of web application directory C:\Eclipse\apache-tomcat-8.0.30\webapps\host-manager has finished in 48 ms
fev 16, 2016 7:55:39 PM org.apache.catalina.startup.HostConfig deployDirectory
INFORMAÇÕES: Deploying web application directory C:\Eclipse\apache-tomcat-8.0.30\webapps\manager
fev 16, 2016 7:55:39 PM org.apache.catalina.startup.HostConfig deployDirectory
INFORMAÇÕES: Deployment of web application directory C:\Eclipse\apache-tomcat-8.0.30\webapps\manager has finished in 63 ms
fev 16, 2016 7:55:39 PM org.apache.catalina.startup.HostConfig deployDirectory
INFORMAÇÕES: Deploying web application directory C:\Eclipse\apache-tomcat-8.0.30\webapps\ROOT
fev 16, 2016 7:55:39 PM org.apache.catalina.startup.HostConfig deployDirectory
INFORMAÇÕES: Deployment of web application directory C:\Eclipse\apache-tomcat-8.0.30\webapps\ROOT has finished in 50 ms
fev 16, 2016 7:55:39 PM org.apache.coyote.AbstractProtocol start
INFORMAÇÕES: Starting ProtocolHandler ["http-nio-8080"]
fev 16, 2016 7:55:39 PM org.apache.coyote.AbstractProtocol start
INFORMAÇÕES: Starting ProtocolHandler ["ajp-nio-8009"]
fev 16, 2016 7:55:39 PM org.apache.catalina.startup.Catalina start
INFORMAÇÕES: Server startup in 17562 ms
25 respostas

Oi Ewerton, tudo bem?

Sem ver o código, eu arrisco que ele não está encontrando o EntityManager para instanciar. Você criou a classe EntityManagerProducer?

Se criou, posta o código das classes EntityManagerProducer e ProdutoDao aqui?

Abraço!

Obrigado pela atenção Lucas!!

Segue abaixo:

EntityManager:

package br.com.caelum.vraptor.util;

import javax.enterprise.context.RequestScoped;
import javax.enterprise.inject.Produces;
import javax.persistence.EntityManager;

public class EntityManagerProducer {

    @Produces @RequestScoped
    public EntityManager criaEM() {
        return JPAUtil.criaEntityManager();
    }
}

ProdutoDao:

package br.com.caelum.vraptor.dao;

import java.util.List;

import javax.enterprise.context.RequestScoped;
import javax.inject.Inject;
import javax.persistence.EntityManager;

import br.com.caelum.vraptor.model.Produto;

@RequestScoped
public class ProdutoDao {

    private final EntityManager em;

    @Inject
    public ProdutoDao(EntityManager em) {
        this.em = em;
    }

    public ProdutoDao() {
        this(null);
    }

    public void adiciona(Produto produto) {
        em.getTransaction().begin();
        em.persist(produto);
        em.getTransaction().commit();
    }

    public void remove(Produto produto) {
        em.remove(busca(produto));
    }

    public Produto busca(Produto produto) {
        return em.find(Produto.class, produto.getId());
    }

    @SuppressWarnings("unchecked")
    public List<Produto> lista() {
        return em.createQuery("select p from Produto p").getResultList();
    }
}

Oi Ewerton,

tenho a impressão que vc já implementou algo no projeto pois a injeção no ProdutoDao nao está funcionando. Ou seja, o seu projeto subiu com sucesso, mas o ProdutoDao realmente está com um problema.

Qual URL você está acessando? A sua dúvida é referente de qual exercício?

abs

Oi Ewerton,

tenho a impressão que vc já implementou algo no projeto pois a injeção no ProdutoDao nao está funcionando. Ou seja, o seu projeto subiu com sucesso, mas o ProdutoDao realmente está com um problema.

Qual URL você está acessando? A sua dúvida é referente de qual exercício?

abs

Na verdade não estou conseguindo dar continuidade no meu curso... Estou no capítulo 7, do VRaptor4

Fiz o exercício, mas não consigo testar pra postar, e continuar...

Tentei a url => localhost:8080 o Tomcat carrega a tela normalmente OK.

Mas se eu tentar carregar a url => localhost:8080/vraptor-produtos/produto/lista

ou

a url => localhost:8080/vraptor-produtos/produto/formulario

Gera o erro 404 - De página não encontrada, mas o jsp´s estavam ok até ontem...

Oi Ewerton,

me mande o seu projeto: nico.steppat@caelum.com.br

obrigado

OK, obrigado!

O e-mail retornou...

Não aceitou .zip

renomeie o arquivo para algo diferente, por exemplo .txt

Exclui todo o projeto do workspace, e comecei o curso do "ZERO", e descobri que o problema ocorre quando eu faço as alterações do exercício 6 na classe ProdutoDao.

Quando eu mando Startar o Tomcar, verifiquei o erro no console:

GRAVE: Exception sending context initialized event to listener instance of class org.jboss.weld.environment.servlet.Listener
org.jboss.weld.exceptions.DeploymentException: WELD-001408: Unsatisfied dependencies for type EntityManager with qualifiers @Default
  at injection point [BackedAnnotatedParameter] Parameter 1 of [BackedAnnotatedConstructor] @Inject public br.com.caelum.vraptor.dao.ProdutoDao(EntityManager)
  at br.com.caelum.vraptor.dao.ProdutoDao.<init>(ProdutoDao.java:0)

Exportei o projeto renomeei a extenção para .txt e mandei pra vc Nico...

Obrigado pela atenção!! Abraço!

Oi Ewerton, Estou com o mesmo erro que você ,até a realização dos exercícios da aula 8 o meu projeto estava funcionando.Mas com as modificações do código deu ruim rsrsr.No meu console apareceu isso:

fev 18, 2016 7:47:39 PM org.apache.tomcat.util.digester.SetPropertiesRule begin
ADVERTÊNCIA: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:vraptor-produtos' did not find a matching property.
fev 18, 2016 7:47:39 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMAÇÕES: Server version:        Apache Tomcat/7.0.67
fev 18, 2016 7:47:39 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMAÇÕES: Server built:          Dec 7 2015 13:07:11 UTC
fev 18, 2016 7:47:39 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMAÇÕES: Server number:         7.0.67.0
fev 18, 2016 7:47:39 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMAÇÕES: OS Name:               Windows 10
fev 18, 2016 7:47:39 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMAÇÕES: OS Version:            10.0
fev 18, 2016 7:47:39 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMAÇÕES: Architecture:          amd64
fev 18, 2016 7:47:39 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMAÇÕES: Java Home:             C:\Program Files\Java\jre1.8.0_71
fev 18, 2016 7:47:39 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMAÇÕES: JVM Version:           1.8.0_71-b15
fev 18, 2016 7:47:39 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMAÇÕES: JVM Vendor:            Oracle Corporation
fev 18, 2016 7:47:39 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMAÇÕES: CATALINA_BASE:         C:\Users\Thais\Documents\workspace_curso\.metadata\.plugins\org.eclipse.wst.server.core\tmp1
fev 18, 2016 7:47:39 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMAÇÕES: CATALINA_HOME:         C:\apache-tomcat-7.0.67
fev 18, 2016 7:47:39 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMAÇÕES: Command line argument: -Dcatalina.base=C:\Users\Thais\Documents\workspace_curso\.metadata\.plugins\org.eclipse.wst.server.core\tmp1
fev 18, 2016 7:47:39 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMAÇÕES: Command line argument: -Dcatalina.home=C:\apache-tomcat-7.0.67
fev 18, 2016 7:47:39 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMAÇÕES: Command line argument: -Dwtp.deploy=C:\Users\Thais\Documents\workspace_curso\.metadata\.plugins\org.eclipse.wst.server.core\tmp1\wtpwebapps
fev 18, 2016 7:47:39 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMAÇÕES: Command line argument: -Djava.endorsed.dirs=C:\apache-tomcat-7.0.67\endorsed
fev 18, 2016 7:47:39 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMAÇÕES: Command line argument: -Dfile.encoding=Cp1252
fev 18, 2016 7:47:39 PM org.apache.catalina.core.AprLifecycleListener lifecycleEvent
INFORMAÇÕES: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files\Java\jre1.8.0_71\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:/Program Files/Java/jre1.8.0_71/bin/server;C:/Program Files/Java/jre1.8.0_71/bin;C:/Program Files/Java/jre1.8.0_71/lib/amd64;C:\ProgramData\Oracle\Java\javapath;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files\Java\jdk1.8.0_40\bin;C:\apache-maven-3.3.1\bin;C:\Program Files\Git\bin;C:\Program Files\nodejs\;C:\Users\Thais\AppData\Roaming\npm;C:\Program Files\eclipse;;.
fev 18, 2016 7:47:40 PM org.apache.coyote.AbstractProtocol init
INFORMAÇÕES: Initializing ProtocolHandler ["http-bio-8080"]
fev 18, 2016 7:47:40 PM org.apache.coyote.AbstractProtocol init
INFORMAÇÕES: Initializing ProtocolHandler ["ajp-bio-8009"]
fev 18, 2016 7:47:40 PM org.apache.catalina.startup.Catalina load
INFORMAÇÕES: Initialization processed in 1324 ms
fev 18, 2016 7:47:40 PM org.apache.catalina.core.StandardService startInternal
INFORMAÇÕES: Starting service Catalina
fev 18, 2016 7:47:40 PM org.apache.catalina.core.StandardEngine startInternal
INFORMAÇÕES: Starting Servlet Engine: Apache Tomcat/7.0.67
fev 18, 2016 7:47:40 PM org.apache.catalina.util.SessionIdGeneratorBase createSecureRandom
INFORMAÇÕES: Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [147] milliseconds.
fev 18, 2016 7:47:43 PM org.apache.catalina.startup.TldConfig execute
INFORMAÇÕES: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
log4j:WARN No appenders could be found for logger (org.jboss.logging).
log4j:WARN Please initialize the log4j system properly.
fev 18, 2016 7:47:54 PM org.apache.catalina.core.StandardContext listenerStart
GRAVE: Exception sending context initialized event to listener instance of class org.jboss.weld.environment.servlet.Listener
org.jboss.weld.exceptions.DeploymentException: WELD-000069: An interceptor must have at least one binding, but br.com.caelum.vraptor.interceptor.AutorizadorInterceptor has none
    at org.jboss.weld.bean.InterceptorImpl.<init>(InterceptorImpl.java:76)
    at org.jboss.weld.bean.InterceptorImpl.of(InterceptorImpl.java:66)
    at org.jboss.weld.bootstrap.AbstractBeanDeployer.createInterceptor(AbstractBeanDeployer.java:282)
    at org.jboss.weld.bootstrap.BeanDeployer.createClassBean(BeanDeployer.java:245)
    at org.jboss.weld.bootstrap.ConcurrentBeanDeployer$2.doWork(ConcurrentBeanDeployer.java:74)
    at org.jboss.weld.bootstrap.ConcurrentBeanDeployer$2.doWork(ConcurrentBeanDeployer.java:72)
    at org.jboss.weld.executor.IterativeWorkerTaskFactory$1.call(IterativeWorkerTaskFactory.java:60)
    at org.jboss.weld.executor.IterativeWorkerTaskFactory$1.call(IterativeWorkerTaskFactory.java:53)
    at java.util.concurrent.FutureTask.run(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

fev 18, 2016 7:47:54 PM org.apache.catalina.core.StandardContext startInternal
GRAVE: One or more listeners failed to start. Full details will be found in the appropriate container log file
fev 18, 2016 7:47:54 PM org.apache.catalina.core.StandardContext startInternal
GRAVE: Context [/vraptor-produtos] startup failed due to previous errors
fev 18, 2016 7:47:54 PM org.apache.catalina.core.StandardContext listenerStop
GRAVE: Exception sending context destroyed event to listener instance of class org.jboss.weld.environment.servlet.Listener
java.lang.NullPointerException
    at org.jboss.weld.servlet.WeldInitialListener.contextDestroyed(WeldInitialListener.java:102)
    at org.jboss.weld.servlet.api.helpers.ForwardingServletListener.contextDestroyed(ForwardingServletListener.java:30)
    at org.jboss.weld.environment.servlet.Listener.contextDestroyed(Listener.java:85)
    at org.apache.catalina.core.StandardContext.listenerStop(StandardContext.java:5124)
    at org.apache.catalina.core.StandardContext.stopInternal(StandardContext.java:5786)
    at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:232)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:160)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1574)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1564)
    at java.util.concurrent.FutureTask.run(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

fev 18, 2016 7:47:54 PM org.apache.coyote.AbstractProtocol start
INFORMAÇÕES: Starting ProtocolHandler ["http-bio-8080"]
fev 18, 2016 7:47:54 PM org.apache.coyote.AbstractProtocol start
INFORMAÇÕES: Starting ProtocolHandler ["ajp-bio-8009"]
fev 18, 2016 7:47:54 PM org.apache.catalina.startup.Catalina start
INFORMAÇÕES: Server startup in 14183 ms

==================================

Se conseguir resolver posta a resolução,pois travei nos exercícios e não estou conseguindo testar.

Obrigada.

Oi Ewerton e Thais!

Vocês poderiam me enviar o projeto em lucas.sampaio@alura.com.br ?

O Ewerton, acredito que já consegue enviar o .zip. Thais, você pode renomear o arquivo para uma outra exetensão, por exemplo .txt e aí conseguirá enviar.

Caso não consiga de forma alguma, poe o projeto em um dropbox da vida e me envia o link no email, por favor?

Fico aguardando. Abraços!

Enviado Lucas, obrigado!

Oi Pessoal,

Achamos o problema!

O pacote br.com.caelum.vraptor.util é reservado para o uso exclusivo do vraptor. as classes dentro desse pacote estão sendo ignoradas (ou seja, o producer do entitymanager não está sendo carregado e por isso a exceção).

Para resolver, basta dar um outro nome para este pacote, por exemplo br.com.caelum.vraptor.producer.

Ok?

abs

Boa tarde Noco!

Renomeei o pacote conforme você me orientou por e-mail e pelo fórum, porém resolveu em partes...

http://localhost:8080 => OK


http://localhost:8080/vraptor-produtos/ => OK


http://localhost:8080/vraptor-produtos/produto/lista => OK => Porém quando eu clico no link Remover, gera erro:

URL => http://localhost:8080/vraptor-produtos/produto/remove?produto.id=2 HTTP Status 405 -

type Status report

message

description The specified HTTP method is not allowed for the requested resource.

Apache Tomcat/8.0.30


http://localhost:8080/vraptor-produtos/produto/adiciona => Gera erro 405


http://localhost:8080/vraptor-produtos/produto/formulario => Gera erro 500

HTTP Status 500 - /WEB-INF/jsp/produto/formulario.jsp raised an exception

type Exception report

message /WEB-INF/jsp/produto/formulario.jsp raised an exception

description The server encountered an internal error that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: /WEB-INF/jsp/produto/formulario.jsp raised an exception
    br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:120)
root cause

org.apache.jasper.JasperException: /WEB-INF/jsp/produto/formulario.jsp (line: 23, column: 38) equal symbol expected
    org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:41)
    org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:275)
    org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:91)
    org.apache.jasper.compiler.Parser.parseAttribute(Parser.java:220)
    org.apache.jasper.compiler.Parser.parseAttributes(Parser.java:163)
    org.apache.jasper.compiler.Parser.parseAttributes(Parser.java:154)
    org.apache.jasper.compiler.Parser.parseCustomTag(Parser.java:1241)
    org.apache.jasper.compiler.Parser.parseElements(Parser.java:1460)
    org.apache.jasper.compiler.Parser.parse(Parser.java:139)
    org.apache.jasper.compiler.ParserController.doParse(ParserController.java:227)
    org.apache.jasper.compiler.ParserController.parse(ParserController.java:100)
    org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:199)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:356)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:336)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:323)
    org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:585)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:363)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    br.com.caelum.vraptor.core.DefaultStaticContentHandler.deferProcessingToContainer(DefaultStaticContentHandler.java:85)
    br.com.caelum.vraptor.core.DefaultStaticContentHandler$Proxy$_$$_WeldClientProxy.deferProcessingToContainer(Unknown Source)
    br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:107)
    br.com.caelum.vraptor.view.DefaultPageResult.defaultView(DefaultPageResult.java:81)
    br.com.caelum.vraptor.observer.ForwardToDefaultView.forward(ForwardToDefaultView.java:67)
    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    java.lang.reflect.Method.invoke(Unknown Source)
    org.jboss.weld.injection.MethodInjectionPoint.invokeOnInstanceWithSpecialValue(MethodInjectionPoint.java:93)
    org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:266)
    org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:253)
    org.jboss.weld.event.ObserverMethodImpl.notify(ObserverMethodImpl.java:232)
    org.jboss.weld.event.ObserverNotifier.notifyObserver(ObserverNotifier.java:169)
    org.jboss.weld.event.ObserverNotifier.notifyObserver(ObserverNotifier.java:165)
    org.jboss.weld.event.ObserverNotifier.notifyObservers(ObserverNotifier.java:119)
    org.jboss.weld.event.ObserverNotifier.fireEvent(ObserverNotifier.java:112)
    org.jboss.weld.event.EventImpl.fire(EventImpl.java:83)
    br.com.caelum.vraptor.observer.RequestHandlerObserver.handle(RequestHandlerObserver.java:87)
    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    java.lang.reflect.Method.invoke(Unknown Source)
    org.jboss.weld.injection.MethodInjectionPoint.invokeOnInstanceWithSpecialValue(MethodInjectionPoint.java:93)
    org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:266)
    org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:253)
    org.jboss.weld.event.ObserverMethodImpl.notify(ObserverMethodImpl.java:232)
    org.jboss.weld.event.ObserverNotifier.notifyObserver(ObserverNotifier.java:169)
    org.jboss.weld.event.ObserverNotifier.notifyObserver(ObserverNotifier.java:165)
    org.jboss.weld.event.ObserverNotifier.notifyObservers(ObserverNotifier.java:119)
    org.jboss.weld.event.ObserverNotifier.fireEvent(ObserverNotifier.java:112)
    org.jboss.weld.event.EventImpl.fire(EventImpl.java:83)
    br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:116)
note The full stack trace of the root cause is available in the Apache Tomcat/8.0.30 logs.

Apache Tomcat/8.0.30

Há fiz, clicando com o botão direito no pacote, RESOURCE, RENAME...

Para que as alterações fossem feitas também nas classes que importam esse pacote...

Oi Ewerton,

conseguiu então? O problema no JSP tem outra causa.

nico

Renomeei e os http://localhost:8080 http://localhost:8080/vraptor-produtos/

Estão ok, Nico

Só os JSP´s, que estão zicados agora...

Oi Ewerton! As considerações que farei serão sobre o código que você me enviou no email hoje mais cedo.

O erro de status 405 significa que a URL aceita um determinado método HTTP e você está tentando acessar através de outro.

No caso:

  • Ao clicar no link para remover, o método HTTP utilizado é o GET, mas no seu Controller, o método que remove, está configurado como POST. Uma forma fácil de resolver seria alterar a anotação no método remove na classe ProdutoController.

Agora que você está recebendo uma instância de ProdutoDao através do construtor, pode remover a instância de ProdutoDao e a transação. Seu método deve ficar assim:

@Get // Alterar para @Get
public void remove(Produto produto) {
    dao.remove(produto);
}
  • A URL http://localhost:8080/vraptor-produtos/produto/adiciona, realmente você não deve acessar ela através da barra de endereços do navegador. Pois quando acessamos por lá, o método HTTP vai ser GET. Essa URL será utilizada pelo formulário que adicona produtos e tratada pelo método adiciona do seu controller. Aqui está correto mesmo.

O eror na jsp é causado por uma " (aspas) faltando no seu formulario.jsp. No fim da página, onde tem tem a parte de mostrar os erros, deixa assim:

<c:forEach items="${errors}" var="erro">
    ${erro.category} - ${erro.mssage}
</c:forEach>

Tenta essas modificações e vê se funciona?

Abraço!

Boa tarde Lucas e Nico!

Fiz as alterações, conforme você me orientou no ProdutoController, ProdutoDao e formulario.jsp e tentei acessa a URL: localhost:8080/vraptor-produtos/login/autentica

Testei com usuário que não existe e ao invés de dar a mensagem "Usuário inválido", gerou erro 404

Tentei utilizando o usuário e senha vraptor, e ocorreu o mesmo erro.

E no console mostra:

15:56:55,320 DEBUG [DefaultControllerTranslator] trying to access /login/login/autentica
15:56:55,321 DEBUG [VRaptor             ] VRaptor ended the request
solução!

Oi Ewerton. Me envia o seu projeto atual lá no email, por favor?

Abraço!

Enviei... Obrigado!!

Um abraço!

Perfeito Lucas!!

Essa segunda parte dos problemas (.JSP´s), foi por falta de atenção de minha parte...

Obrigado pela atenção Lucas e Nico!!

Um abraço e uma ótima semana pra vc´s do Alura!!!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software