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

Capitulo 2 - Singleton

Prezados, Boa noite.

Ao anotar a classe Banco com @Singleton e pedir para a Classe AutorDAO ou LivroDAO fazer a injeção do Banco, quando rodo a aplicação e e ele tenta acessar o Objeto estoura um nullPointer.

Classe Banco

import javax.ejb.Singleton;

@Singleton
public class Banco {

Classe AutorDAO

@Stateless
public class AutorDao {

    @Inject
    private Banco banco;

StrackTrace

exception

javax.servlet.ServletException
    javax.faces.webapp.FacesServlet.service(FacesServlet.java:606)
    org.jboss.weld.servlet.ConversationPropagationFilter.doFilter(ConversationPropagationFilter.java:62)
root cause

java.lang.NullPointerException
    br.com.caelum.livraria.dao.AutorDao.todosAutores(AutorDao.java:29)
    br.com.caelum.livraria.bean.LivroBean.getAutores(LivroBean.java:32)
    br.com.caelum.livraria.bean.LivroBean$Proxy$_$$_WeldClientProxy.getAutores(LivroBean$Proxy$_$$_WeldClientProxy.java)
    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    java.lang.reflect.Method.invoke(Method.java:606)
    javax.el.BeanELResolver.getValue(BeanELResolver.java:302)
    com.sun.faces.el.DemuxCompositeELResolver._getValue(DemuxCompositeELResolver.java:176)
    com.sun.faces.el.DemuxCompositeELResolver.getValue(DemuxCompositeELResolver.java:203)
    org.apache.el.parser.AstValue.getValue(AstValue.java:169)
    org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:189)
    org.jboss.weld.el.WeldValueExpression.getValue(WeldValueExpression.java:50)
    com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:109)
    javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:194)
    javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:182)
    javax.faces.component.UISelectItems.getValue(UISelectItems.java:129)
    org.primefaces.renderkit.InputRenderer.getSelectItems(InputRenderer.java:55)
    org.primefaces.component.selectonemenu.SelectOneMenuRenderer.encodeMarkup(SelectOneMenuRenderer.java:71)
    org.primefaces.component.selectonemenu.SelectOneMenuRenderer.encodeEnd(SelectOneMenuRenderer.java:65)
    javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:875)
    javax.faces.component.UIComponent.encodeAll(UIComponent.java:1786)
    org.primefaces.component.panelgrid.PanelGridRenderer.encodeDynamicBody(PanelGridRenderer.java:92)
    org.primefaces.component.panelgrid.PanelGridRenderer.encodeBody(PanelGridRenderer.java:60)
    org.primefaces.component.panelgrid.PanelGridRenderer.encodeEnd(PanelGridRenderer.java:49)
    javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:875)
    javax.faces.component.UIComponent.encodeAll(UIComponent.java:1786)
    javax.faces.render.Renderer.encodeChildren(Renderer.java:168)
    javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:845)
    javax.faces.component.UIComponent.encodeAll(UIComponent.java:1779)
    javax.faces.component.UIComponent.encodeAll(UIComponent.java:1782)
    javax.faces.component.UIComponent.encodeAll(UIComponent.java:1782)
    com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:402)
    com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:125)
    javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:288)
    com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:121)
    com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
    com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
    javax.faces.webapp.FacesServlet.service(FacesServlet.java:594)
    org.jboss.weld.servlet.ConversationPropagationFilter.doFilter(ConversationPropagationFilter.java:62)

Alguém poderia dar uma luz??

5 respostas

Oi Guilherme,

Você testou sem a anotação? Se sim, o resultado foi diferente?

Oi Guilherme,

quando sobe o JBoss, o Banco aparece listado no consolo como EJB?

abs

Então, estou fazendo esse curso pela segunda vez para fixação de conhecimentos, acho que por já ter feito o curso ele deve não estar deixando.

Eu deletei todo o servidor configurei/subi um novo, e ao refazer a configuração, funcionou normalmente?

Poderia ser alguma configuração de Data Source no standalone.xm?

solução!

Oi Guilherme,

nunca se sabe o que atrapalha o jboss :)

como os seus ejbs ainda nao estao usando o datasource, meu chute é que não influencia nao.

parece que foi alguma basteira no deploy.

abs

Tá certo rsss

Obrigado da mesma forma!!

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