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

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

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

WRYEL

: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).

Hebert_Coelho

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.

jmag

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…

Daniel_Farkas

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.

Daniel_Farkas

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.

buiutb

Tutorial ótimo!!
Auto explicativo!!

Parabéns!!

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