1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Problemas em implementar CDI no projeto Java

Para entender meu problema terá que baixar essa apostila, pois estou seguindo ela.

http://www.4shared.com/zip/Bjy4Hr5y/algaworks-ebook-java-ee-7-com-.htm?locale=pt-BR

começa da pagina 154.

estou com dois problemas no meu projeto, segundo a mensagem de erro indica que estou com um problema na classe e o outro no arquivo beans.xml

essa é a mensagem de erro;

Ago 17, 2014 3:19:42 PM org.apache.catalina.core.AprLifecycleListener init
INFORMAÇÕES: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
Ago 17, 2014 3:19:42 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:Financeiro' did not find a matching property.
Ago 17, 2014 3:19:42 PM org.apache.coyote.AbstractProtocol init
INFORMAÇÕES: Initializing ProtocolHandler ["http-bio-8080"]
Ago 17, 2014 3:19:42 PM org.apache.coyote.AbstractProtocol init
INFORMAÇÕES: Initializing ProtocolHandler ["ajp-bio-8009"]
Ago 17, 2014 3:19:42 PM org.apache.catalina.startup.Catalina load
INFORMAÇÕES: Initialization processed in 610 ms
Ago 17, 2014 3:19:42 PM org.apache.catalina.core.StandardService startInternal
INFORMAÇÕES: Starting service Catalina
Ago 17, 2014 3:19:42 PM org.apache.catalina.core.StandardEngine startInternal
INFORMAÇÕES: Starting Servlet Engine: Apache Tomcat/7.0.55
Ago 17, 2014 3:19:44 PM org.jboss.weld.bootstrap.WeldBootstrap <clinit>
INFORMAÇÕES: WELD-000900 2.0.4 (Final)
Ago 17, 2014 3:19:44 PM org.jboss.weld.bootstrap.WeldBootstrap startContainer
INFORMAÇÕES: WELD-000101 Transactional services not available. Injection of @Inject UserTransaction not available. Transactional observers will be invoked synchronously.
Ago 17, 2014 3:19:45 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-000123 Error loading Error loading class com.algaworks.financeiro.util.TransactionInterceptor; location: <class>com.algaworks.financeiro.util.TransactionInterceptor</class> in file:/root/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/Financeiro/WEB-INF/classes/META-INF/beans.xml@9 defined in java.lang.ClassNotFoundException: com.algaworks.financeiro.util.TransactionInterceptor
    at org.jboss.weld.bootstrap.enablement.GlobalEnablementBuilder$ClassLoader.apply(GlobalEnablementBuilder.java:269)
    at org.jboss.weld.bootstrap.enablement.GlobalEnablementBuilder$ClassLoader.apply(GlobalEnablementBuilder.java:255)
    at com.google.common.collect.Lists$TransformingRandomAccessList.get(Lists.java:495)
    at java.util.AbstractList$Itr.next(AbstractList.java:358)
    at com.google.common.collect.ImmutableCollection$Builder.addAll(ImmutableCollection.java:342)
    at com.google.common.collect.ImmutableList$Builder.addAll(ImmutableList.java:692)
    at org.jboss.weld.bootstrap.enablement.GlobalEnablementBuilder.createModuleEnablement(GlobalEnablementBuilder.java:227)
    at org.jboss.weld.bootstrap.BeanDeployment.createEnabled(BeanDeployment.java:221)
    at org.jboss.weld.bootstrap.WeldBootstrap.startInitialization(WeldBootstrap.java:488)
    at org.jboss.weld.environment.servlet.Listener.contextInitialized(Listener.java:141)
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4992)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5490)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1575)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1565)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:745)

Ago 17, 2014 3:19:45 PM com.sun.faces.config.ConfigureListener contextInitialized
INFORMAÇÕES: Inicializando Mojarra 2.2.2 ( 20130809-1625 https://svn.java.net/svn/mojarra~svn/tags/2.2.2@12376) para o contexto '/Financeiro'
Ago 17, 2014 3:19:45 PM com.sun.faces.spi.InjectionProviderFactory createInstance
INFORMAÇÕES: JSF1048: Anotações PostConstruct/PreDestroy presentes.  Os métodos ManagedBeans marcados com essas anotações informarão as anotações processadas.
Ago 17, 2014 3:19:45 PM org.hibernate.validator.internal.util.Version <clinit>
INFO: HV000001: Hibernate Validator 5.0.1.Final
Ago 17, 2014 3:19:46 PM com.sun.faces.config.ConfigureListener$WebConfigResourceMonitor$Monitor <init>
INFORMAÇÕES: Monitoring jndi:/localhost/Financeiro/WEB-INF/faces-config.xml for modifications
Ago 17, 2014 3:19:46 PM org.apache.catalina.core.StandardContext startInternal
GRAVE: Error listenerStart
Ago 17, 2014 3:19:46 PM org.apache.catalina.core.StandardContext startInternal
GRAVE: Context [/Financeiro] startup failed due to previous errors
Ago 17, 2014 3:19:46 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:76)
    at org.jboss.weld.servlet.api.helpers.ForwardingServletListener.contextDestroyed(ForwardingServletListener.java:30)
    at org.jboss.weld.environment.servlet.Listener.contextDestroyed(Listener.java:86)
    at org.apache.catalina.core.StandardContext.listenerStop(StandardContext.java:5033)
    at org.apache.catalina.core.StandardContext.stopInternal(StandardContext.java:5685)
    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:1575)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1565)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:745)

Ago 17, 2014 3:19:46 PM org.apache.coyote.AbstractProtocol start
INFORMAÇÕES: Starting ProtocolHandler ["http-bio-8080"]
Ago 17, 2014 3:19:46 PM org.apache.coyote.AbstractProtocol start
INFORMAÇÕES: Starting ProtocolHandler ["ajp-bio-8009"]
Ago 17, 2014 3:19:46 PM org.apache.catalina.startup.Catalina start
INFORMAÇÕES: Server startup in 3666 ms

esse é meu arquivo beans.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/beans_1_1.xsd"
    version="1.1" bean-discovery-mode="all">
    <interceptors>
        <class>
    com.algaworks.financeiro.util.TransactionInterceptor
</class>
    </interceptors>
</beans>

e essa é a classe TransactionInterceptor.java

package com.algaworks.financeiro.transaction;

import java.io.Serializable;

import javax.inject.Inject;
import javax.interceptor.AroundInvoke;
import javax.interceptor.Interceptor;
import javax.interceptor.InvocationContext;
import javax.persistence.EntityManager;
import javax.persistence.EntityTransaction;

import com.algaworks.financeiro.repositorio.Lancamentos.Transactional;


@Interceptor
@Transactional
public class TransactionInterceptor implements Serializable {
    private static final long serialVersionUID = 1L;
    private @Inject EntityManager manager;

    @AroundInvoke
    public Object invoke(InvocationContext context) throws Exception {
        EntityTransaction trx = manager.getTransaction();
        boolean criador = false;
        try {
            if (!trx.isActive()) {
                // truque para fazer rollback no que já passou
                // (senão, um futuro commit, confirmaria até mesmo
                // operações sem transação)
                trx.begin();
                trx.rollback();
                // agora sim inicia a transação
                trx.begin();
                criador = true;
            }
            return context.proceed();
        } catch (Exception e) {
            if (trx != null && criador) {
                trx.rollback();
            }
            throw e;
        } finally {
            if (trx != null && trx.isActive() && criador) {
                trx.commit();
            }
        }
    }
}

quais são as alterações que posso realizar nesses dois arquivos para tira a mensagem de erro?

pode ser que eu esteja equivocado em relação a mensagem de erro, mas aceito sugestões e preciso muito de ajuda.

é aqui aonde esta meu arquivo beans.xml

https://www.filepicker.io/api/file/T2cePPYYTAG9Rgeg4OUJ

  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

1 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags maven jsf java web.xml ou faça a sua própria pergunta.