Tutorial: Seam 3 + JBoss AS 7 + Maven 3 + MySQL 5.5 (NetBeans 7.1.2 ou Eclipse Indigo)

13 respostas
K

Fiz um guia pra mim mesmo com o passo a passo pra criar um projeto web baseado em Seam 3 e JBoss AS 7 e pensei em compartilhar aqui, pois muita gente apanha (como apanhei) pra fazer esse mix funcionar. Por enquanto esse guia ensina a montar um projeto a partir de um archetype Maven que exibe uma página simples e foi montado pegando "retalhos" pela internet, sendo que alguns que guardei a fonte estão citados no texto. Mais pra frente complementarei o tutorial ensinando a usar o framework para persistência, JSF e beans gerenciados. Também pretendo "formalizar" o tutorial e enviar pro GUJ no formato padrão.

Espero que seja útil. [size=18]Por favor, se este tutorial te ajudar, deixe um comentário. [/size] Se não funcionar, procure no Google usando a descrição da exceção ou o código de erro. 99,9% dos problemas que tive até hoje resolvi buscando por aí (tanto que acho que meu cadastro no GUJ é desse ano e não tenho outro em nenhum fórum). Se estiver arrancando os cabelos, descreva seu problema e coloque suas configurações e ajudarei da melhor maneira possível.

* Tutorial desenvolvido usando Windows 7 64-bits - alguns passos podem precisar ser adaptados para outras versões do S.O.
* Todas as instalações são feitas usando as configurações padrões, exceto quando ressalva em contrário

Tecnologias usadas:
- Netbeans 7 + Seam 3 + JBoss AS 7 + Maven 3 + MySQL 5.5

[size=18]PREPARAÇÃO[/size]

Para este tutorial será utilizada a pasta c:\devel como raiz
- Crie pasta "apps" e coloque todos os downloads nela
- Crie a pasta "projetos", onde serão colocados os arquivos de projeto

-------------------------------------------------------------------------------------------------
[size=18]DOWNLOADS[/size]

- Java EE SDK 6 com JDK 7 - http://www.oracle.com/technetwork/java/javaee/downloads/java-ee-sdk-6u3-jdk-7u1-downloads-523391.html
- NetBeans 7.1.2 com Java EE - http://netbeans.org/downloads/start.html?platform=windows&lang=pt_BR&option=javaee
- JBoss AS 7.1.1 Final - http://download.jboss.org/jbossas/7.1/jboss-as-7.1.1.Final/jboss-as-7.1.1.Final.zip
- Apache Maven 3.0.4 - http://www.apache.org/dyn/closer.cgi/maven/binaries/apache-maven-3.0.4-bin.zip
- MySQL Community Server 5.5.24.1 - http://dev.mysql.com/downloads/installer/5.5.html
-- Requer: .NET Framework 4.0 - http://www.microsoft.com/downloads/details.aspx?FamilyID=0a391abd-25c1-4fc0-919f-b21f31ab88b7&displayLang=pt-br
-- Requer: Visual C++ Redistributable - http://www.microsoft.com/en-us/download/details.aspx?id=5555

-------------------------------------------------------------------------------------------------
[size=18]INSTALAÇÃO DOS APLICATIVOS[/size]

- Instalar Java EE
- Instalar .NET (Executar como administrador)
- Instalar Visual C++ ( OBS.: Mesmo que seu sistema seja 64-bits (x64), deve-se instalar a versão 32-bits (x86))
- Instalar MySQL 5.5 (Perfil Developer)
- Instalar NetBeans 7.1.2 (Sem Glassfish - já instalado pelo Java SDK)
- Descompacte o arquivo "apache-maven-3.0.4-bin.zip" na pasta "Apps"
- Descompacte o arquivo "jboss-as-7.1.1.Final.zip" na pasta "Apps"

- Editar variáveis de ambiente de usuário
-- Iniciar -> Painel de controle -> Sistema e segurança -> Sistema -> Configurações avançadas do sistema -> Botão Variáveis de ambiente
-- Alternativamente: tecla WIN + Pause -> Configurações avançadas do sistema -> Botão Variáveis de ambiente
-- No quadro de cima, variáveis de usuário clique em "Novo" e adicione:

Nome da variável: JAVA_HOME
Valor da variável: C:\Program Files\Java\jdk1.7.0_04

Nome da variável: JBOSS_HOME
Valor da variável: C:\devel\apps\jboss-as-7.1.1.Final (SEM BARRA NO FINAL!)

Nome da variável: MAVEN_HOME
Valor da variável: C:\devel\apps\apache-maven-3.0.4

Nome da variável: Path
Valor da variável: %MAVEN_HOME%\bin;%JAVA_HOME%\bin

-- Testar Maven digitando "mvn ?version" no cmd
-- Testar Java digitando "java ?version" no cmd

-------------------------------------------------------------------------------------------------
[size=18]CONFIGURAÇÃO[/size]

MySQL
- Abrir command line e digitar (alternativamente use o MySQL Workbench para criar as tabelas e sincronizar com o servidor):
-- create database dbtutorial;

-- criar tabela "usuario"
CREATE TABLE IF NOT EXISTS `dbtutorial`.`usuario` ( `idusuario` INT NOT NULL AUTO_INCREMENT , `nome` VARCHAR(80) NULL , `cidade` VARCHAR(50) NULL , PRIMARY KEY (`idusuario`) )ENGINE = InnoDB;

-- Criar dados para consulta
INSERT INTO `dbtutorial`.`usuario` (`idusuario`, `nome`, `cidade`) VALUES (1, 'Jose', 'Sao Paulo');
INSERT INTO `dbtutorial`.`usuario` (`idusuario`, `nome`, `cidade`) VALUES (2, 'Maria', 'Belo Horizonte');
INSERT INTO `dbtutorial`.`usuario` (`idusuario`, `nome`, `cidade`) VALUES (3, 'Joao', 'Brasilia');
INSERT INTO `dbtutorial`.`usuario` (`idusuario`, `nome`, `cidade`) VALUES (4, 'Joana', 'Salvador');

MAVEN
- Configurar o Maven para usar o repositório JBoss
-- Executar "C:\devel\apps\apache-maven-3.0.4\bin\mvn.bat"
-- Copiar arquivo "C:\devel\apps\apache-maven-3.0.4\conf\settings.xml" para a pasta "C:\Users\USERPROFILE\.m2"
-- Substituir todo o arquivo com o conteúdo abaixo:

<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" 
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
  
  <pluginGroups>
  	<pluginGroup>org.jboss.maven.plugins</pluginGroup>
  </pluginGroups>

<!-- Caso necessário configurar um proxy, descomente a seção abaixo -->
<!--
  <proxies>
    <proxy>
      <id>optional</id>
      <active>true</active>
      <protocol>http</protocol>
      <username>user</username>
      <password>pass</password>
      <host>proxy.com.br</host>
      <port>80</port>
      <nonProxyHosts>local.net|some.host.com</nonProxyHosts>
    </proxy>
  </proxies>
-->

  <profiles>
	<profile>
      <id>jboss-public-repository</id>
      <repositories>
        <repository>
          <id>jboss-public-repository-group</id>
          <name>JBoss Public Maven Repository Group</name>
          <url>https://repository.jboss.org/nexus/content/groups/public-jboss/</url>
          <layout>default</layout>
          <releases>
            <enabled>true</enabled>
            <updatePolicy>never</updatePolicy>
          </releases>
          <snapshots>
            <enabled>true</enabled>
            <updatePolicy>never</updatePolicy>
          </snapshots>
        </repository>
      </repositories>
      <pluginRepositories>
        <pluginRepository>
          <id>jboss-public-repository-group</id>
          <name>JBoss Public Maven Repository Group</name>
          <url>https://repository.jboss.org/nexus/content/groups/public-jboss/</url>
          <layout>default</layout>
          <releases>
            <enabled>true</enabled>
            <updatePolicy>never</updatePolicy>
          </releases>
          <snapshots>
            <enabled>true</enabled>
            <updatePolicy>never</updatePolicy>
          </snapshots>
        </pluginRepository>
      </pluginRepositories>
    </profile>
</profiles>

  <activeProfiles>
    <activeProfile>jboss-public-repository</activeProfile>
  </activeProfiles>

</settings>

- Criar um .bat na pasta C:\devel\projetos\ contendo o comando:
mvn archetype:generate -DinteractiveMode=n -DarchetypeArtifactId=jboss-javaee6-webapp -DarchetypeGroupId=org.jboss.weld.archetypes -DarchetypeVersion=1.0.1.CR2 -DarchetypeRepository=central -DgroupId=br.com.tutorial -DartifactId=tutorial

-- -DgroupId= nome dos packages de código fonte do projeto
-- -DartifactId= nome do projeto Maven
-- -DarchetupeArtifactId= id do artefato a ser utilizado. Lista de artefatos disponíveis:
http://search.maven.org/#search|ga|1|g%3A%22org.jboss.weld.archetypes%22

- Execute o .bat

-------------------------------------------------------------------------------------------------
[size=18]CONSTRUINDO O PROJETO NO NETBEANS[/size]

- Abrir e verificar se é necessário atualizar: Ajuda -> verificar Atualizações
- Instalar e reinicializar o NetBeans

- Abrir o projeto criado pelo Maven: Arquivo -> Abrir projeto...
- Navegar até a pasta "C:\devel\projetos" e abrir o projeto "tutorial" com o ícone do Maven
- Botão direito -> Exibir e resolver problemas -> Construção principal (demora um pouco)
- Botão direito -> Definir Configuração ->
- Botão direito -> Construir com dependências.

-------------------------------------------------------------------------------------------------
[size=18]CONSTRUINDO O PROJETO NO ECLIPSE[/size]
- Abrir IDE
- Marketplace - Maven Integration for Eclipse WTP
- Reinicar Eclipse
- Marketplace - Jboss Tools (Indigo)
- Reinicar Eclipse

- Window -> Preferences -> Server -> Runtime Enviroments -> Add...
-- JBoss Community -> JBoss 7.1 Runtime
-- Mudar Home Directory para C:\devel\apps\jboss-as-7.1.1.Final

- Botão direito no projeto -> Properties -> Java Compiler -> Annotation Processing
-- Marcar "Enable annotation processing", "Apply" e faça o build do projeto
Fonte: http://docs.jboss.org/hibernate/stable/jpamodelgen...ence/en-US/html_single/#d0e319

- File -> Import -> Digitar "Maven" -> Existing Maven Projects
-- Root Directory c:\devel\projeto\tutorial -> Finish
- Botão direito no projeto -> Properties -> Targeted Runtime
-- Selecionar servidor criado, apply, ok

- Run as
- Run on server -> Jboss 7.1 Runtime
- Marcar "Always use this server when running this project" -> Finish

OBS.: O Eclipse dá vários warnings mas infelizmente não tive tempo de mostrar como resolver todos. Procure na Internet, 99,9% dos problemas podem ser encontrados nela.
No futuro irei melhorar essa seção.

-------------------------------------------------------------------------------------------------
EXECUTANDO NO GLASSFISH

Neste momento você pode executar o projeto criado a partir do archetype, no Glassfish. Nos passos seguintes, os arquivos do projeto serão retirados ou modificados para funcionar com o JBoss e não funcionarão no Glassfish.

- Baixar weld bundle
https://repository.jboss.org/nexus/content/repositories/snapshots/org/jboss/weld/weld-osgi-bundle/1.1.0-SNAPSHOT/weld-osgi-bundle-1.1.0-20110726.041819-79.jar

- Colocar na pasta "C:\Users\USERPROFILE\GlassFish_Server\glassfish\modules"
- Apagar "weld-osgi.bundle.jar"
- Renomear arquivo baixado para "weld-osgi-bundle.jar"
- Executar projeto pela IDE

-------------------------------------------------------------------------------------------------

- Para limpar todos os arquivos do projeto modelo criado pelo Maven
-- Apagar os arquivos:
-- Pacotes de código fonte: todos arquivo .java (manter packages)
-- Pacotes de testes/br.com.tutorial.test/MemberRegistrationTest.java

- Editar "Outros códigos-fontes/META-INF/persistence.xml"
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence  http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
  <persistence-unit name="primary" transaction-type="JTA">
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <jta-data-source>java:jboss/datasources/MySqlDS</jta-data-source>
    <properties/>
  </persistence-unit>
</persistence>
- Editar "Outros códigos-fontes/resources-jbossas/default-ds.xml * Todo arquivo *-ds.xml é lido pelo JBoss AS 7 como um arquivo de configuração de datasource
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE datasources PUBLIC "-//JBoss//DTD JBOSS JCA Config 1.5//EN"
    "http://www.jboss.org/j2ee/dtd/jboss-ds_1_5.dtd">
<datasources>
    <local-tx-datasource>
        <jndi-name>java:jboss/datasources/MySqlDS</jndi-name>
        <use-java-context>true</use-java-context>
        <connection-url>jdbc:mysql://localhost:3306/dbtutorial</connection-url>
        <driver-class>com.mysql.jdbc.Driver</driver-class>
        <user-name>root</user-name>
        <password>***********SENHA DO BANCO DE DADOS**************</password>
        <min-pool-size>5</min-pool-size>
        <max-pool-size>20</max-pool-size>
    </local-tx-datasource>
</datasources>
- Editar "Páginas Web/index.xhtml"
<?xml version="1.0" encoding="UTF-8"?>
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:h="http://java.sun.com/jsf/html"
    template="/WEB-INF/templates/default.xhtml">
    <ui:define name="content">
        <h1>Welcome to Java EE 6!</h1>

        <p>You have successfully deployed a Java EE 6 web application.</p>

    </ui:define>
</ui:composition>

- Adicionar servidor Glassfish (pro-forma, para driblar o IDE)
-- Ferramentas -> Servidores -> Adicionar servidor -> GlassFish Server 3+
-- Localização da instalação "C:\Users\USERPROFILE\GlassFish_Server" (encontrado automaticamente)
-- Next -> Finalizar

- Limpar e construir o projeto (Shift + F11)

-------------------------------------------------------------------------------------------------
[size=18]EXECUTANDO NO JBOSS[/size]

Configuração

- Adicionar usuário com o script "C:\devel\apps\jboss-as-7.1.1.Final\bin\add-user.bat"
-- No primeiro e no segundo atributo, apenas aperte enter

- Instalar driver MySQL como módulo -- Em "C:\devel\apps\jboss-as-7.1.1.Final\modules\com" criar a pasta "mysql" e dentro dela criar a pasta "main" -- Copiar "C:\Program Files\NetBeans 7.1.2\ide\modules\ext\mysql-connector-java-5.1.13-bin.jar" na pasta criada (main) -- criar arquivo "module.xml" na mesma pasta com o conteúdo:
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.1" name="com.mysql">
    <resources>
        <resource-root path="mysql-connector-java-5.1.13-bin.jar"/>
    </resources>
    <dependencies>
        <module name="javax.api"/>
        <module name="javax.transaction.api"/>
        <module name="javax.servlet.api" optional="true"/>
    </dependencies>
</module>

FONTES:
https://community.jboss.org/wiki/DataSourceConfigurationinAS7#Installing_the_JDBC_Driver
http://planet.jboss.org/post/jboss_as_7_1_0_final_thunder_released_java_ee_6_full_profile_certified

- Editar "C:\devel\apps\jboss-as-7.1.1.Final\standalone\configuration\standalone.xml" para adicionar um DataSource MySQL
<datasources>
    <datasource jndi-name="java:jboss/datasources/MySqlDS" pool-name="MySqlDS" enabled="true" use-java-context="true">
        <connection-url>jdbc:mysql://localhost:3306/dbtutorial</connection-url>
        <driver>com.mysql</driver>
        <security>
            <user-name>root</user-name>
            <password>***********SENHA DO BANCO DE DADOS**************</password>
        </security>
    </datasource>
    <drivers>
        <driver name="com.mysql" module="com.mysql">
            <xa-datasource-class>com.mysql.jdbc.jdbc2.optional.MysqlXADataSource</xa-datasource-class>
        </driver>
    </drivers>
</datasources>

FONTE:
http://docs.jboss.org/ironjacamar/userguide/1.0/en-US/html/deployment.html#deployingds_descriptor

-------------------------------------------------------------------------------------------------
[size=18]FAZENDO O DEPLOY[/size]

Como ainda não encontrei uma maneira de fazer o deploy pelo "Executar" do NetBeans, uso um arquivo .bat que copia o novo WAR para a pasta de deploy e cria um arquivo "tutorial.war.dodeploy" - um arquivo vazio que sinaliza ao JBoss AS que há necessidade de se fazer o deploy do projeto.

- Iniciar container "C:\devel\apps\jboss-as-7.1.1.Final\bin\standalone.bat"
- Console: http://localhost:9990/ (logar com usuario criado anteriormente)
- Página: http://localhost:8080/tutorial/

- Criar um arquivo "redeploy.bat" na pasta "C:\devel\apps\jboss-as-7.1.1.Final\standalone\deployments" com o conteúdo abaixo:
xcopy /U /Y C:\devel\projeto\tutorial\target\tutorial.war C:\devel\apps\jboss-as-7.1.1.Final\standalone\deployments
echo>> tutorial.war.dodeploy

- Executar o "redeploy.bat" e verificar se a aplicação está rodando em http://localhost:8080/tutorial/

OBS.: Ao fazer o redeploy várias exceções são lançadas no console do JBoss AS, relacionadas ao Logger. Como ela não influencia no funcionamento desse projeto básico, não procurei como corrigir.

Nota: Alterei o título pois o foco é a geração do projeto a partir do archetype e or funcionar nas duas IDE's (NetBeans 7.1.2 e Eclipse Indigo)

13 Respostas

W

Excelente, vou executar em casa no fds! :slight_smile:
A unica parte que eu desconsidero foi de ter que usar netbeans, mass, eu adapto ele confortavelmente para o eclipse :o)

[]'s

K

WRYEL:
Excelente, vou executar em casa no fds! :slight_smile:
A unica parte que eu desconsidero foi de ter que usar netbeans, mass, eu adapto ele confortavelmente para o eclipse :o)

[]'s

No Eclipse é melhor ainda pois ele já tem integração com o JBoss AS 7 e faz o deploy sozinho, preferi mostrar como fazer no NetBeans exatamente por ser mais complicado. Não sei se a persistencia que vem no projeto funciona no JBoss. Comecei a fazer o tutorial pra ele mas parei, segue o que fiz, se for util:

Eclipse

  • Baixar Eclipse

  • Marketplace - Maven Integration for Eclipse WTP

  • Reinicar Eclipse

  • Marketplace - Jboss Tools (Indigo)

  • Reinicar Eclipse

  • Window -> Preferences -> Server -> Runtime Enviroments -> Add…
    – JBoss Community -> JBoss 7.1 Runtime
    – Mudar Home Directory para C:\devel\apps\jboss-as-7.1.1.Final

  • Botão direito no projeto -> Properties -> Java Compiler -> Annotation Processing
    – Marcar “Enable annotation processing”, “Apply” e faça o build do projeto
    Fonte: http://docs.jboss.org/hibernate/stable/jpamodelgen/reference/en-US/html_single/#d0e319

  • File -> Import -> Digitar “Maven” -> Existing Maven Projects
    – Root Directory c:\devel\projeto\tutorial -> Finish

  • Botão direito no projeto -> Properties -> Targeted Runtime
    – Selecionar servidor criado, apply, ok

  • Run as

  • Run on server -> Jboss 7.1 Runtime

  • Marcar “Always use this server when running this project” -> Finish

W

:smiley:

K

Em tempo: a velocidade de carregamento e deploy do JBoss é absurdamente fantástica de rápida (pra quem estava acostumado com Tomcat e Glassfish sem uso do JEE6 e Seam 3).

H

kauedg:
No Eclipse é melhor ainda pois ele já tem integração com o JBoss AS 7 e faz o deploy sozinho, preferi mostrar como fazer no NetBeans exatamente por ser mais complicado.
Cara, você é a primeira pessoa em toda minha vida de Java que eu ouço falar isso! Mahauhauha

Parabéns aí pelo tutorial! \o_

K

jakefrog:
kauedg:
No Eclipse é melhor ainda pois ele já tem integração com o JBoss AS 7 e faz o deploy sozinho, preferi mostrar como fazer no NetBeans exatamente por ser mais complicado.
Cara, você é a primeira pessoa em toda minha vida de Java que eu ouço falar isso! Mahauhauha

Parabéns aí pelo tutorial! \o_

Assumi ser um elogio, portanto muito obrigado :slight_smile:

Gostaria que deixassem um comentário se executaram o tutorial e tudo funcionou bem. Em breve farei outro ensinando como fazer um login usando os módulos Security e Persistence do Seam.

J

Legal hein
Parabéns :smiley:

Abraços

K

[size=18] Substituindo a ação “run” do NetBeans [/size]

No tutorial o deploy era feito manualmente tendo que rodar um arquivo .bat toda vez que quisesse fazer o deploy da aplicação. Para fazer isso automaticamente, personalize a ação “Run” (F6) no NetBeans:

  • Usando as estruturas do tutorial acima
  • Botão direito no projeto -> propriedades -> ações -> selecionar “Executar Projeto” -> “Executar metas” alterar para clean install -> apagar “Configurar Propriedades” -> OK
    – Esse procedimento cria o arquivo nbactions.xml na raiz do projeto

  • Adicione no arquivo standalone.xml do JBoss:

Assim toda vez que você apertar F6…

  • O NetBeans fará a construção do projeto
  • O Maven gerará o .war e
  • O JBoss ativará o autodeploy, tornando a aplicação rapidamente disponível em localhost:8080/tutorial

Eliminando a seção “Fazendo o deploy” do tutorial acima.

Ainda não tive tempo de ver como se faz isso no Eclipse e por enquanto não irei tentar… Just Google it.

Se por algum motivo você quiser que o maven execute um arquivo .exe ou .bat logo após o deploy do .war configure conforme abaixo. Usarei como exemplo o arquivo redeploy.bat do tutorial:

<?xml version="1.0" encoding="UTF-8"?> <actions> <action> <actionName>run</actionName> <goals> <goal>clean</goal> <goal>install</goal> <goal>org.codehaus.mojo:exec-maven-plugin:1.2.1.jbossorg-3:exec</goal> </goals> <properties> <!-- <exec.args>war:exploded</exec.args> para fazer o deploy com o conteúdo exploded, descomente essa linha --> <exec.executable>redeploy (sem ".bat")</exec.executable> <exec.workingdir>/caminho/ate/a/pasta/que/contem/o/arquivo</exec.workingdir> </properties> </action> </actions>

Mais parâmetros e referências aqui:
http://mojo.codehaus.org/exec-maven-plugin/exec-mojo.html
http://mojo.codehaus.org/exec-maven-plugin/

K

E se configurarmos o nbactions.xml assim:

<?xml version="1.0" encoding="UTF-8"?> <actions> <action> <actionName>run</actionName> <goals> <goal>clean</goal> <goal>install</goal> <goal>org.codehaus.mojo:exec-maven-plugin:1.2.1.jbossorg-3:exec</goal> </goals> <properties> <exec.executable>standalone</exec.executable> <exec.workingdir>/devel/apps/jboss-as-7.1.1.Final/bin</exec.workingdir> </properties> </action> </actions>

O Jboss AS7 roda como se fosse um servidor Glassfish ou Tomcat, com saída no NetBeans e tudo…

D

Fazendo pelo seu jeito ou pelo create maven project do m2Eclipse, resulta no mesmo erro. o projeto funciona mas lança essas excessões quando inicio o JBoss AS 7.1: sendo que esses jars se encontram no classpath.

23:23:17,986 INFO  [org.jboss.weld.ClassLoading] (MSC service thread 1-2) catching: org.jboss.weld.resources.spi.ResourceLoadingException: Error loading class org.jboss.logging.Log4jLogger
	at org.jboss.weld.resources.ClassTransformer.loadClass(ClassTransformer.java:152) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31]
	at org.jboss.weld.bootstrap.BeanDeployer.addClass(BeanDeployer.java:86) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31]
	at org.jboss.weld.bootstrap.BeanDeployer.addClasses(BeanDeployer.java:115) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31]
	at org.jboss.weld.bootstrap.BeanDeployment.createBeans(BeanDeployment.java:171) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31]
	at org.jboss.weld.bootstrap.WeldBootstrap.deployBeans(WeldBootstrap.java:336) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31]
	at org.jboss.as.weld.WeldContainer.start(WeldContainer.java:82) [jboss-as-weld-7.1.1.Final.jar:7.1.1.Final]
	at org.jboss.as.weld.services.WeldService.start(WeldService.java:76) [jboss-as-weld-7.1.1.Final.jar:7.1.1.Final]
	at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811)
	at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [rt.jar:1.6.0_32]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [rt.jar:1.6.0_32]
	at java.lang.Thread.run(Thread.java:662) [rt.jar:1.6.0_32]
Caused by: java.lang.NoClassDefFoundError: org/apache/log4j/Priority
	at java.lang.Class.getDeclaredFields0(Native Method) [rt.jar:1.6.0_32]
	at java.lang.Class.privateGetDeclaredFields(Class.java:2291) [rt.jar:1.6.0_32]
	at java.lang.Class.getDeclaredFields(Class.java:1743) [rt.jar:1.6.0_32]
	at org.jboss.weld.util.reflection.SecureReflections$4.work(SecureReflections.java:102) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31]
	at org.jboss.weld.util.reflection.SecureReflections$4.work(SecureReflections.java:99) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31]
	at org.jboss.weld.util.reflection.SecureReflectionAccess.run(SecureReflectionAccess.java:52) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31]
	at org.jboss.weld.util.reflection.SecureReflectionAccess.runAndWrap(SecureReflectionAccess.java:63) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31]
	at org.jboss.weld.util.reflection.SecureReflections.getDeclaredFields(SecureReflections.java:99) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31]
	at org.jboss.weld.introspector.jlr.WeldClassImpl.<init>(WeldClassImpl.java:153) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31]
	at org.jboss.weld.introspector.jlr.WeldClassImpl.of(WeldClassImpl.java:118) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31]
	at org.jboss.weld.resources.ClassTransformer$TransformTypeToWeldClass.apply(ClassTransformer.java:49) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31]
	at org.jboss.weld.resources.ClassTransformer$TransformTypeToWeldClass.apply(ClassTransformer.java:40) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31]
	at com.google.common.collect.ComputingConcurrentHashMap$ComputingValueReference.compute(ComputingConcurrentHashMap.java:355)
	at com.google.common.collect.ComputingConcurrentHashMap$ComputingSegment.compute(ComputingConcurrentHashMap.java:184)
	at com.google.common.collect.ComputingConcurrentHashMap$ComputingSegment.getOrCompute(ComputingConcurrentHashMap.java:153)
	at com.google.common.collect.ComputingConcurrentHashMap.getOrCompute(ComputingConcurrentHashMap.java:69)
	at com.google.common.collect.ComputingConcurrentHashMap$ComputingMapAdapter.get(ComputingConcurrentHashMap.java:393)
	at org.jboss.weld.resources.ClassTransformer.loadClass(ClassTransformer.java:149) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31]
	... 11 more
Caused by: java.lang.ClassNotFoundException: org.apache.log4j.Priority from [Module "org.jboss.logging:main" from local module loader @5e176f (roots: C:\jboss-as-7.1.1.Final\modules)]
	at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:190)
	at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:468)
	at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:456)
	at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:423)
	at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398)
	at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120)
	... 29 more

23:23:18,180 INFO  [org.jboss.seam.solder.core.CoreExtension] (MSC service thread 1-2) Preventing class org.jboss.seam.solder.resourceLoader.ResourceProvider from being installed as bean due to @Veto annotation
23:23:18,253 INFO  [org.jboss.weld.ClassLoading] (MSC service thread 1-2) WELD-000119 Not generating any bean definitions from org.jboss.logging.Slf4jLogger because of underlying class loading error
23:23:18,257 INFO  [org.jboss.weld.ClassLoading] (MSC service thread 1-2) catching: org.jboss.weld.resources.spi.ResourceLoadingException: Error loading class org.jboss.logging.Slf4jLogger
	at org.jboss.weld.resources.ClassTransformer.loadClass(ClassTransformer.java:152) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31]
	at org.jboss.weld.bootstrap.BeanDeployer.addClass(BeanDeployer.java:86) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31]
	at org.jboss.weld.bootstrap.BeanDeployer.addClasses(BeanDeployer.java:115) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31]
	at org.jboss.weld.bootstrap.BeanDeployment.createBeans(BeanDeployment.java:171) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31]
	at org.jboss.weld.bootstrap.WeldBootstrap.deployBeans(WeldBootstrap.java:336) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31]
	at org.jboss.as.weld.WeldContainer.start(WeldContainer.java:82) [jboss-as-weld-7.1.1.Final.jar:7.1.1.Final]
	at org.jboss.as.weld.services.WeldService.start(WeldService.java:76) [jboss-as-weld-7.1.1.Final.jar:7.1.1.Final]
	at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811)
	at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [rt.jar:1.6.0_32]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [rt.jar:1.6.0_32]
	at java.lang.Thread.run(Thread.java:662) [rt.jar:1.6.0_32]
Caused by: java.lang.NoClassDefFoundError: Lorg/slf4j/Logger;
	at java.lang.Class.getDeclaredFields0(Native Method) [rt.jar:1.6.0_32]
	at java.lang.Class.privateGetDeclaredFields(Class.java:2291) [rt.jar:1.6.0_32]
	at java.lang.Class.getDeclaredFields(Class.java:1743) [rt.jar:1.6.0_32]
	at org.jboss.weld.util.reflection.SecureReflections$4.work(SecureReflections.java:102) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31]
	at org.jboss.weld.util.reflection.SecureReflections$4.work(SecureReflections.java:99) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31]
	at org.jboss.weld.util.reflection.SecureReflectionAccess.run(SecureReflectionAccess.java:52) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31]
	at org.jboss.weld.util.reflection.SecureReflectionAccess.runAndWrap(SecureReflectionAccess.java:63) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31]
	at org.jboss.weld.util.reflection.SecureReflections.getDeclaredFields(SecureReflections.java:99) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31]
	at org.jboss.weld.introspector.jlr.WeldClassImpl.<init>(WeldClassImpl.java:153) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31]
	at org.jboss.weld.introspector.jlr.WeldClassImpl.of(WeldClassImpl.java:118) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31]
	at org.jboss.weld.resources.ClassTransformer$TransformTypeToWeldClass.apply(ClassTransformer.java:49) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31]
	at org.jboss.weld.resources.ClassTransformer$TransformTypeToWeldClass.apply(ClassTransformer.java:40) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31]
	at com.google.common.collect.ComputingConcurrentHashMap$ComputingValueReference.compute(ComputingConcurrentHashMap.java:355)
	at com.google.common.collect.ComputingConcurrentHashMap$ComputingSegment.compute(ComputingConcurrentHashMap.java:184)
	at com.google.common.collect.ComputingConcurrentHashMap$ComputingSegment.getOrCompute(ComputingConcurrentHashMap.java:153)
	at com.google.common.collect.ComputingConcurrentHashMap.getOrCompute(ComputingConcurrentHashMap.java:69)
	at com.google.common.collect.ComputingConcurrentHashMap$ComputingMapAdapter.get(ComputingConcurrentHashMap.java:393)
	at org.jboss.weld.resources.ClassTransformer.loadClass(ClassTransformer.java:149) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31]
	... 11 more
Caused by: java.lang.ClassNotFoundException: org.slf4j.Logger from [Module "org.jboss.logging:main" from local module loader @5e176f (roots: C:\jboss-as-7.1.1.Final\modules)]
	at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:190)
	at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:468)
	at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:456)
	at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:423)
	at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398)
	at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120)
	... 29 more

23:23:18,344 INFO  [org.jboss.weld.ClassLoading] (MSC service thread 1-2) WELD-000119 Not generating any bean definitions from org.jboss.logging.Slf4jLocationAwareLogger because of underlying class loading error
23:23:18,348 INFO  [org.jboss.weld.ClassLoading] (MSC service thread 1-2) catching: org.jboss.weld.resources.spi.ResourceLoadingException: Error loading class org.jboss.logging.Slf4jLocationAwareLogger
	at org.jboss.weld.resources.ClassTransformer.loadClass(ClassTransformer.java:152) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31]
	at org.jboss.weld.bootstrap.BeanDeployer.addClass(BeanDeployer.java:86) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31]
	at org.jboss.weld.bootstrap.BeanDeployer.addClasses(BeanDeployer.java:115) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31]
	at org.jboss.weld.bootstrap.BeanDeployment.createBeans(BeanDeployment.java:171) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31]
	at org.jboss.weld.bootstrap.WeldBootstrap.deployBeans(WeldBootstrap.java:336) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31]
	at org.jboss.as.weld.WeldContainer.start(WeldContainer.java:82) [jboss-as-weld-7.1.1.Final.jar:7.1.1.Final]
	at org.jboss.as.weld.services.WeldService.start(WeldService.java:76) [jboss-as-weld-7.1.1.Final.jar:7.1.1.Final]
	at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811)
	at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [rt.jar:1.6.0_32]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [rt.jar:1.6.0_32]
	at java.lang.Thread.run(Thread.java:662) [rt.jar:1.6.0_32]
Caused by: java.lang.NoClassDefFoundError: Lorg/slf4j/spi/LocationAwareLogger;
	at java.lang.Class.getDeclaredFields0(Native Method) [rt.jar:1.6.0_32]
	at java.lang.Class.privateGetDeclaredFields(Class.java:2291) [rt.jar:1.6.0_32]
	at java.lang.Class.getDeclaredFields(Class.java:1743) [rt.jar:1.6.0_32]
	at org.jboss.weld.util.reflection.SecureReflections$4.work(SecureReflections.java:102) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31]
	at org.jboss.weld.util.reflection.SecureReflections$4.work(SecureReflections.java:99) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31]
	at org.jboss.weld.util.reflection.SecureReflectionAccess.run(SecureReflectionAccess.java:52) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31]
	at org.jboss.weld.util.reflection.SecureReflectionAccess.runAndWrap(SecureReflectionAccess.java:63) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31]
	at org.jboss.weld.util.reflection.SecureReflections.getDeclaredFields(SecureReflections.java:99) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31]
	at org.jboss.weld.introspector.jlr.WeldClassImpl.<init>(WeldClassImpl.java:153) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31]
	at org.jboss.weld.introspector.jlr.WeldClassImpl.of(WeldClassImpl.java:118) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31]
	at org.jboss.weld.resources.ClassTransformer$TransformTypeToWeldClass.apply(ClassTransformer.java:49) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31]
	at org.jboss.weld.resources.ClassTransformer$TransformTypeToWeldClass.apply(ClassTransformer.java:40) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31]
	at com.google.common.collect.ComputingConcurrentHashMap$ComputingValueReference.compute(ComputingConcurrentHashMap.java:355)
	at com.google.common.collect.ComputingConcurrentHashMap$ComputingSegment.compute(ComputingConcurrentHashMap.java:184)
	at com.google.common.collect.ComputingConcurrentHashMap$ComputingSegment.getOrCompute(ComputingConcurrentHashMap.java:153)
	at com.google.common.collect.ComputingConcurrentHashMap.getOrCompute(ComputingConcurrentHashMap.java:69)
	at com.google.common.collect.ComputingConcurrentHashMap$ComputingMapAdapter.get(ComputingConcurrentHashMap.java:393)
	at org.jboss.weld.resources.ClassTransformer.loadClass(ClassTransformer.java:149) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31]
	... 11 more
Caused by: java.lang.ClassNotFoundException: org.slf4j.spi.LocationAwareLogger from [Module "org.jboss.logging:main" from local module loader @5e176f (roots: C:\jboss-as-7.1.1.Final\modules)]
	at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:190)
	at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:468)
	at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:456)
	at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:423)
	at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398)
	at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120)
	... 29 more

23:23:18,974 INFO  [stdout] (MSC service thread 1-3) Hibernate: call next value for hibernate_sequence

23:23:19,044 INFO  [tutorial] (MSC service thread 1-3) Successfully imported seed data.
23:23:19,075 INFO  [stdout] (MSC service thread 1-3) Hibernate: insert into Member (email, name, phone_number, id) values (?, ?, ?, ?)

23:23:19,194 INFO  [javax.enterprise.resource.webcontainer.jsf.config] (MSC service thread 1-3) Inicializando Mojarra 2.1.7-jbossorg-1 (20120227-1401) para o contexto '/tutorial'
23:23:20,717 INFO  [javax.enterprise.resource.webcontainer.jsf.config] (MSC service thread 1-3) Monitoring jndi:/default-host/tutorial/WEB-INF/faces-config.xml for modifications
23:23:20,757 INFO  [org.jboss.web] (MSC service thread 1-3) JBAS018210: Registering web context: /tutorial
23:23:20,878 INFO  [org.jboss.as.server] (DeploymentScanner-threads - 2) JBAS018559: Deployed "tutorial.war"
23:23:22,553 INFO  [stdout] (http-localhost-127.0.0.1-8080-1) Hibernate: select member0_.id as id0_, member0_.email as email0_, member0_.name as name0_, member0_.phone_number as phone4_0_ from Member member0_ order by member0_.name asc

23:25:21,473 INFO  [org.jboss.as.logging] JBAS011503: Restored bootstrap log handlers
23:25:21,475 WARN  [org.jboss.remoting.remote] JBREM000205: Failed to accept a connection: java.nio.channels.ClosedChannelException
23:25:21,477 WARN  [org.jboss.remoting.remote] JBREM000205: Failed to accept a connection: java.nio.channels.ClosedChannelException
23:25:21,479 WARN  [org.jboss.remoting.remote] JBREM000205: Failed to accept a connection: java.nio.channels.ClosedChannelException
23:25:21,481 WARN  [org.jboss.remoting.remote] JBREM000205: Failed to accept a connection: java.nio.channels.ClosedChannelException
23:25:21,523 INFO  [org.jboss.weld.deployer] JBAS016009: Stopping weld service for deployment tutorial.war
23:25:21,529 INFO  [org.jboss.as.jpa] JBAS011403: Stopping Persistence Unit Service 'tutorial.war#primary'
23:25:21,531 INFO  [org.hibernate.tool.hbm2ddl.SchemaExport] HHH000227: Running hbm2ddl schema export
23:25:21,533 ERROR [org.hibernate.tool.hbm2ddl.SchemaExport] HHH000231: Schema export unsuccessful: org.h2.jdbc.JdbcSQLException: Database is already closed (to disable automatic closing at VM shutdown, add ";DB_CLOSE_ON_EXIT=FALSE" to the db URL) [90121-161]
	at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
	at org.h2.message.DbException.get(DbException.java:169)
	at org.h2.message.DbException.get(DbException.java:146)
	at org.h2.message.DbException.get(DbException.java:135)
	at org.h2.jdbc.JdbcConnection.checkClosed(JdbcConnection.java:1394)
	at org.h2.jdbc.JdbcConnection.checkClosed(JdbcConnection.java:1369)
	at org.h2.jdbc.JdbcConnection.createStatement(JdbcConnection.java:191)
	at org.jboss.jca.adapters.jdbc.WrappedConnection.createStatement(WrappedConnection.java:304)
	at org.hibernate.tool.hbm2ddl.DatabaseExporter.<init>(DatabaseExporter.java:54)
	at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:368)
	at org.hibernate.tool.hbm2ddl.SchemaExport.drop(SchemaExport.java:319)
	at org.hibernate.tool.hbm2ddl.SchemaExport.drop(SchemaExport.java:315)
	at org.hibernate.internal.SessionFactoryImpl.close(SessionFactoryImpl.java:1279)
	at org.hibernate.ejb.EntityManagerFactoryImpl.close(EntityManagerFactoryImpl.java:140)
	at org.jboss.as.jpa.service.PersistenceUnitServiceImpl.stop(PersistenceUnitServiceImpl.java:98) [jboss-as-jpa-7.1.1.Final.jar:7.1.1.Final]
	at org.jboss.msc.service.ServiceControllerImpl$StopTask.stopService(ServiceControllerImpl.java:1911) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]
	at org.jboss.msc.service.ServiceControllerImpl$StopTask.run(ServiceControllerImpl.java:1874) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [rt.jar:1.6.0_32]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [rt.jar:1.6.0_32]
	at java.lang.Thread.run(Thread.java:662) [rt.jar:1.6.0_32]

23:25:21,562 INFO  [org.hibernate.tool.hbm2ddl.SchemaExport] HHH000230: Schema export complete
23:25:21,568 INFO  [com.arjuna.ats.jbossatx] ARJUNA032018: Destroying TransactionManagerService
23:25:21,570 INFO  [com.arjuna.ats.jbossatx] ARJUNA032014: Stopping transaction recovery manager
23:25:21,573 INFO  [org.jboss.as.server.deployment] JBAS015877: Stopped deployment tutorial.war in 138ms
23:25:21,579 INFO  [org.jboss.as] JBAS015950: JBoss AS 7.1.1.Final "Brontes" stopped in 74ms
K

Tenta adicionar a dependência org.jboss.dna : dna-common / 0.7… Ela inclui várias bibliotecas.

Desde esse tutorial eu “evolui” um pouco na matéria e estou estudando EJB 3 com Glassfish, muito mais prático.

D

Apesar das grandes vantagens do CDI, o Seam 3 ainda esta muito confuso, falta documentação, precisa de um infinidade de dependências que nem o maven resolve, vou esperar desenvolverem algo estável para poder usar.

B

Tutorial ótimo!!
Auto explicativo!!

Parabéns!!

Criado 25 de maio de 2012
Ultima resposta 28 de mar. de 2014
Respostas 13
Participantes 6