Exception com uso de CDI, JBoss utilizando JDBC

    Pessoal, estou iniciando desenvolvimento com uso de CDI.

Recebo a seguinte exception:

javax.faces.el.EvaluationException: java.lang.RuntimeException: Error looking up java:comp/env/java:jboss/SysConnect in JNDI

Ambiente:
Eclipse Kepler, JBoss 7.1.1, JBoss Tools, Postgresql 9.2

Código de exemplo:

import java.io.Serializable;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import javax.annotation.Resource;
import javax.inject.Named;
import javax.enterprise.context.SessionScoped;
import javax.sql.DataSource;

import java.sql.ResultSet;

import br.com.artefatod.ambBeans.AmbMenuBean;

@Named(“ambIndex”)
@SessionScoped
public class Coonnect implements Serializable{

@Resource(name="java:jboss/SysConnect")
private DataSource ds;
Connection con;
String sql;
		
public void conecta() {
	try {
		con = ds.getConnection();
		try {
	
            System.out.println("conexao iniciada em... " );
            sql = "Select T0001Id, T0001DescrItemMenu From T0001AMBConfigMenu;";
            PreparedStatement pstm = con.prepareStatement(sql);
   		  	ResultSet rs = pstm.executeQuery();
   		    	while(rs.next()) {
   		 	  System.out.println(rs.getInt("T0001Id") + "\t");
   			  System.out.println(rs.getString("T0001DescrItemMenu"));
   			}	   			
            		
            		
		} finally {
			con.close();
		}
	} catch(Exception e) {
		System.out.println(e.getMessage());
	}
}		

}

obs.: Foi inserido arquivo beans.xml vazio em web-inf como diz a especificação.

Detalhe: utilizando @ManagedBean roda sem problemas, acessando a base de dados.

Seria necessária alguma configuração complementar para uso com CDI?
Agradeço antecipadamente.

Por favor, use as tags [code] quando postar código.
Além disso, especifique melhor o erro, coloque o stack trace completo.

ai vai…

exception

javax.servlet.ServletException: java.lang.RuntimeException: Error looking up java:comp/env/java:jboss/SysConnect in JNDI
javax.faces.webapp.FacesServlet.service(FacesServlet.java:606)
org.jboss.weld.servlet.ConversationPropagationFilter.doFilter(ConversationPropagationFilter.java:62)

root cause

javax.faces.el.EvaluationException: java.lang.RuntimeException: Error looking up java:comp/env/java:jboss/SysConnect in JNDI
javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:102)
com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
javax.faces.component.UICommand.broadcast(UICommand.java:315)
javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:794)
javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1259)
com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)
org.jboss.weld.servlet.ConversationPropagationFilter.doFilter(ConversationPropagationFilter.java:62)

root cause

java.lang.RuntimeException: Error looking up java:comp/env/java:jboss/SysConnect in JNDI
org.jboss.weld.injection.spi.helpers.AbstractResourceServices.resolveResource(AbstractResourceServices.java:51)
org.jboss.weld.util.Beans.injectEEFields(Beans.java:638)
org.jboss.weld.bean.ManagedBean$ManagedBeanInjectionTarget$1$1.proceed(ManagedBean.java:160)
org.jboss.weld.injection.InjectionContextImpl.run(InjectionContextImpl.java:48)
org.jboss.weld.bean.ManagedBean$ManagedBeanInjectionTarget$1.work(ManagedBean.java:157)
org.jboss.weld.bean.ManagedBean$FixInjectionPoint.run(ManagedBean.java:131)
org.jboss.weld.bean.ManagedBean$ManagedBeanInjectionTarget.inject(ManagedBean.java:153)
org.jboss.weld.bean.ManagedBean.create(ManagedBean.java:290)
org.jboss.weld.context.AbstractContext.get(AbstractContext.java:107)
org.jboss.weld.bean.proxy.ContextBeanInstance.getInstance(ContextBeanInstance.java:90)
org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(ProxyMethodHandler.java:79)
br.com.artefatod.ambBusiness.Coonnect$Proxy$_$$WeldClientProxy.conecta(Coonnect$Proxy$$$_WeldClientProxy.java)
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.apache.el.parser.AstValue.invoke(AstValue.java:262)
org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:278)
org.jboss.weld.util.el.ForwardingMethodExpression.invoke(ForwardingMethodExpression.java:39)
org.jboss.weld.el.WeldMethodExpression.invoke(WeldMethodExpression.java:50)
com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105)
javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:88)
com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
javax.faces.component.UICommand.broadcast(UICommand.java:315)
javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:794)
javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1259)
com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)
org.jboss.weld.servlet.ConversationPropagationFilter.doFilter(ConversationPropagationFilter.java:62)

root cause

javax.naming.NameNotFoundException: env/java:jboss/SysConnect – service jboss.naming.context.java.module.AprendendoWeb.AprendendoWeb.env.java:jboss.SysConnect
org.jboss.as.naming.ServiceBasedNamingStore.lookup(ServiceBasedNamingStore.java:97)
org.jboss.as.naming.NamingContext.lookup(NamingContext.java:178)
org.jboss.as.naming.InitialContext.lookup(InitialContext.java:123)
org.jboss.as.naming.NamingContext.lookup(NamingContext.java:214)
javax.naming.InitialContext.lookup(Unknown Source)
org.jboss.weld.injection.spi.helpers.AbstractResourceServices.resolveResource(AbstractResourceServices.java:47)
org.jboss.weld.util.Beans.injectEEFields(Beans.java:638)
org.jboss.weld.bean.ManagedBean$ManagedBeanInjectionTarget$1$1.proceed(ManagedBean.java:160)
org.jboss.weld.injection.InjectionContextImpl.run(InjectionContextImpl.java:48)
org.jboss.weld.bean.ManagedBean$ManagedBeanInjectionTarget$1.work(ManagedBean.java:157)
org.jboss.weld.bean.ManagedBean$FixInjectionPoint.run(ManagedBean.java:131)
org.jboss.weld.bean.ManagedBean$ManagedBeanInjectionTarget.inject(ManagedBean.java:153)
org.jboss.weld.bean.ManagedBean.create(ManagedBean.java:290)
org.jboss.weld.context.AbstractContext.get(AbstractContext.java:107)
org.jboss.weld.bean.proxy.ContextBeanInstance.getInstance(ContextBeanInstance.java:90)
org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(ProxyMethodHandler.java:79)
br.com.artefatod.ambBusiness.Coonnect$Proxy$_$$WeldClientProxy.conecta(Coonnect$Proxy$$$_WeldClientProxy.java)
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.apache.el.parser.AstValue.invoke(AstValue.java:262)
org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:278)
org.jboss.weld.util.el.ForwardingMethodExpression.invoke(ForwardingMethodExpression.java:39)
org.jboss.weld.el.WeldMethodExpression.invoke(WeldMethodExpression.java:50)
com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105)
javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:88)
com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
javax.faces.component.UICommand.broadcast(UICommand.java:315)
javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:794)
javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1259)
com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)
org.jboss.weld.servlet.ConversationPropagationFilter.doFilter(ConversationPropagationFilter.java:62)

[quote=dmalucelli]ai vai…

exception

javax.servlet.ServletException: java.lang.RuntimeException: Error looking up java:comp/env/java:jboss/SysConnect in JNDI
javax.faces.webapp.FacesServlet.service(FacesServlet.java:606)
org.jboss.weld.servlet.ConversationPropagationFilter.doFilter(ConversationPropagationFilter.java:62)

root cause

javax.faces.el.EvaluationException: java.lang.RuntimeException: Error looking up java:comp/env/java:jboss/SysConnect in JNDI
javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:102)
com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
javax.faces.component.UICommand.broadcast(UICommand.java:315)
javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:794)
javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1259)
com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)
org.jboss.weld.servlet.ConversationPropagationFilter.doFilter(ConversationPropagationFilter.java:62)

root cause

java.lang.RuntimeException: Error looking up java:comp/env/java:jboss/SysConnect in JNDI
org.jboss.weld.injection.spi.helpers.AbstractResourceServices.resolveResource(AbstractResourceServices.java:51)
org.jboss.weld.util.Beans.injectEEFields(Beans.java:638)
org.jboss.weld.bean.ManagedBean$ManagedBeanInjectionTarget$1$1.proceed(ManagedBean.java:160)
org.jboss.weld.injection.InjectionContextImpl.run(InjectionContextImpl.java:48)
org.jboss.weld.bean.ManagedBean$ManagedBeanInjectionTarget$1.work(ManagedBean.java:157)
org.jboss.weld.bean.ManagedBean$FixInjectionPoint.run(ManagedBean.java:131)
org.jboss.weld.bean.ManagedBean$ManagedBeanInjectionTarget.inject(ManagedBean.java:153)
org.jboss.weld.bean.ManagedBean.create(ManagedBean.java:290)
org.jboss.weld.context.AbstractContext.get(AbstractContext.java:107)
org.jboss.weld.bean.proxy.ContextBeanInstance.getInstance(ContextBeanInstance.java:90)
org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(ProxyMethodHandler.java:79)
br.com.artefatod.ambBusiness.Coonnect$Proxy$_$$WeldClientProxy.conecta(Coonnect$Proxy$$$_WeldClientProxy.java)
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.apache.el.parser.AstValue.invoke(AstValue.java:262)
org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:278)
org.jboss.weld.util.el.ForwardingMethodExpression.invoke(ForwardingMethodExpression.java:39)
org.jboss.weld.el.WeldMethodExpression.invoke(WeldMethodExpression.java:50)
com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105)
javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:88)
com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
javax.faces.component.UICommand.broadcast(UICommand.java:315)
javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:794)
javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1259)
com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)
org.jboss.weld.servlet.ConversationPropagationFilter.doFilter(ConversationPropagationFilter.java:62)

root cause

javax.naming.NameNotFoundException: env/java:jboss/SysConnect – service jboss.naming.context.java.module.AprendendoWeb.AprendendoWeb.env.java:jboss.SysConnect
org.jboss.as.naming.ServiceBasedNamingStore.lookup(ServiceBasedNamingStore.java:97)
org.jboss.as.naming.NamingContext.lookup(NamingContext.java:178)
org.jboss.as.naming.InitialContext.lookup(InitialContext.java:123)
org.jboss.as.naming.NamingContext.lookup(NamingContext.java:214)
javax.naming.InitialContext.lookup(Unknown Source)
org.jboss.weld.injection.spi.helpers.AbstractResourceServices.resolveResource(AbstractResourceServices.java:47)
org.jboss.weld.util.Beans.injectEEFields(Beans.java:638)
org.jboss.weld.bean.ManagedBean$ManagedBeanInjectionTarget$1$1.proceed(ManagedBean.java:160)
org.jboss.weld.injection.InjectionContextImpl.run(InjectionContextImpl.java:48)
org.jboss.weld.bean.ManagedBean$ManagedBeanInjectionTarget$1.work(ManagedBean.java:157)
org.jboss.weld.bean.ManagedBean$FixInjectionPoint.run(ManagedBean.java:131)
org.jboss.weld.bean.ManagedBean$ManagedBeanInjectionTarget.inject(ManagedBean.java:153)
org.jboss.weld.bean.ManagedBean.create(ManagedBean.java:290)
org.jboss.weld.context.AbstractContext.get(AbstractContext.java:107)
org.jboss.weld.bean.proxy.ContextBeanInstance.getInstance(ContextBeanInstance.java:90)
org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(ProxyMethodHandler.java:79)
br.com.artefatod.ambBusiness.Coonnect$Proxy$_$$WeldClientProxy.conecta(Coonnect$Proxy$$$_WeldClientProxy.java)
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.apache.el.parser.AstValue.invoke(AstValue.java:262)
org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:278)
org.jboss.weld.util.el.ForwardingMethodExpression.invoke(ForwardingMethodExpression.java:39)
org.jboss.weld.el.WeldMethodExpression.invoke(WeldMethodExpression.java:50)
com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105)
javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:88)
com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
javax.faces.component.UICommand.broadcast(UICommand.java:315)
javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:794)
javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1259)
com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)
org.jboss.weld.servlet.ConversationPropagationFilter.doFilter(ConversationPropagationFilter.java:62)
[/quote]
Repito, coloque o código nas tags [code].

ok drsmachado. Agradeço muito a sua colaboração…

Mas com relação a dúvida técnica, mais alguem já enfrentou o problema?

[quote=dmalucelli]ok drsmachado. Agradeço muito a sua colaboração…

Mas com relação a dúvida técnica, mais alguem já enfrentou o problema?[/quote]
Coloque o código nas tags [code]. Se fizer isso, com certeza terá respostas técnicas.
Aprenda a usar o fórum, leia as regras e o how to.

obrigado drsmachado, já entendi seu ponto.

Mais alguém que tenha enfrentado a questão… e que queira “realmente” colaborar?

Uma coisa é certa, aquele @Resource parece não ta funcionando. Porque eu também não sei, mas pelo menos ajuda a delimitar o seu problema.

[quote=dmalucelli]obrigado drsmachado, já entendi seu ponto.

Mais alguém que tenha enfrentado a questão… e que queira “realmente” colaborar?[/quote]
Um sujeito que não sabe nem programar, vai conseguir usar a formatação correta para um código postado em um fórum? A resposta é não.

Aí o pessoal reclama que o guj está bagunçado. Grande parte deste problema é oriundo das pessoas que respondem sem que os requisitos mínimos para a abertura de um tópico sejam seguidos.

Sim, aparentemente pode parecer este o problema, mas o que me intriga é que, utilizando o mesmo código descrito, somente deixando de usar CDI(@Named), passando para @ManagedBean, o código é executado…

Isto me inclina a questionar sobre se há alguma configuração complementar para o uso deste.
O que acham?

Cara, na boa… Tento sempre ser cordial com você. Mas vou dizer duas coisas:

1- Eu nunca reclamei que o forum está bagunçado
2- Vai tomar no **

[quote]Sim, aparentemente pode parecer este o problema, mas o que me intriga é que, utilizando o mesmo código descrito, somente deixando de usar CDI(@Named), passando para @ManagedBean, o código é executado…

Isto me inclina a questionar sobre se há alguma configuração complementar para o uso deste.
O que acham? [/quote]

Algo que é realmente não posso confirmar, mas você pode pesquisar ai e da uma olhada… Talvez a anotação @Resource realmente não funcione com CDI.

edit: O que não me surpreende se não funcionar com CDI. Talvez exista até uma outra anotação com o mesmo propósito, só para CDI. Existem inclusive outras anotações com esse mesmo “problema”. @RequestScoped, etc etc…

Rodrigo, sua sugestão foi de grande valia.

A solução para a exception é, ao invés de utilizar @Resource(name=“java:xyz”)
usar a anotação como @Resource(lookup=“java:xyz”)

e isto para o JBoss, já para o Glassfish a forma da primeira anotação resolve.

obrigado.