Solucionado ROLE_ Spring Security

Olá Pessoal,

O post de hoje vem com o objetivo de complementar dois posts do Edson Gonçalves referente Spring Security. Muitos desenvolvedores que pretende usar Spring Security (SS) em suas apps JEE para implementar a regra de segurança sofrem quando já temos dados cadastrado no BD e não queremos mudar as informações no BD para prefix o ROLE_ que é requerido pelo SS.

Neste post vou mostrar como resolver este problema, que você pode se deparar em sistema legado.

Lets go…

Recomendado:

Spring Security + BD

Spring Security Sem BD

Iniciando

Vou levar em conta que você ja tem implementado o SS conforme este post do Edson Gonçalves. Caso contrário leia o post do Gonçalves antes de continuar com o meu.

Mas, para refrescar sua mente lembre-se que o role deve ter ROLE_ prefixado para que as regras funcionem. Isso é default no SS. Há como alterar, porém pesquisei muitooo e não conseguir implementar, no forum SS há varias sugestoes, mas nenhuma delas foi mais eficiente que prefix o ROLE_ com os dados trazido do BD.

Desenvolvendo

A solução é mais simples que podemos imaginar, você vai precisar apenas prefix o ROLE_. Para quem usa MySQL temos a funcao concat(), no Oracle podemos usar | | etc. Em verifique na documentação do seu banco como concatenar.

A seguir mostramos com o MySQL. É simples demais, confira:

authorities-by-username-query="SELECT  username, concat('ROLE_',authority) FROM users where username = ? "

O código completo fica assim:

< jdbc-user-service data-source-ref="dataSource"  

users-by-username-query="SELECT username, password, 'true' as enable FROM users WHERE username=?"
authorities-by-username-query="SELECT  username, concat('ROLE_',authority) FROM users where username = ? "
/>

ou dessa forma:

 users-by-username-query="SELECT l.login as username, l.senha as password, 'true' as enable from funcionario l where l.login=?"	
authorities-by-username-query="SELECT lo.login as username, CONCAT('ROLE_',lo.cargo)as authority FROM funcionario lo where lo.login=?"	/>
 

Outra dica é se a coluna do usuario/password não for o que o Spring Security espera, basta você fazer conforme o código a seguir:

users-by-username-query="SELECT us.email as username, us.senha as password, 'true' as enable FROM	usuario as us WHERE email=?"
authorities-by-username-query="SELECT  us.email as username, us.tipo as authority FROM usuario us where email= ?"

Vou ficando por aqui, espero que tenham gostado do post.

Abracos e até o próximo post.

Guia de Bolso para SCJP – Lançamento

scjpguia

http://www.lcm.com.br/index.php?Escolha=20&Livro=L00852

olá Pessoal, eu nem sei por onde começar com este post. rs. Primeiro post que não sei o que escrever devido a emoção e a felicidade ao mesmo tempo.  Mas, está ai  mais um trabalho, a publicação do meu livro “Guia de bolso SCJP” assim foi que eu batizei hehe.

Sobre o Guia

Esse “filho” nasceu a partir  de ter feito uma pequena analise e vi que alguns “candidatos SCJP” sentiam falta em saber o que de fato vai cair no exame, como  se parece as perguntas? Muitos acreditam que veremos  apenas : o código compila ou não?!. Porém, o exame ele vai muito além, vc deve saber  porque não compila,  porque lança à exceção Y e não X, qual o resultado correto (parece obvio ne? mas, o exame é expert em enganar o candidato ).

O outro motivo é que ele veio a partir da sala de aula dos cursos preparatório para SCJP que tenho ministrados, os alunos sempre perguntaram por que eu não lançava um livro da mesma forma que conduzia as aulas. Daí, acordei para vida e resolvi fazer essa “criança”. rs

Reunir minhas experiência de preparação para o exame de 10 meses( em 2007) + experiência com Java +  o que conseguir aprender com a preparação + exame SCJP. Fora que “colei” tudo que ia identificando no meu exame e resolvi compartilhar no “guia”.

Outra razão foi que  na época  que estava estudando sentir falta de um livro que eu pudesse ler no ônibus, metrô, sala de espera, intervalo da faculdade etc. O livro da Kathy Sierra é um excelente livro, porem nao dar para ler ele em um metrô, pois quando estamos empolgados, temos que fechar o livro por alguma força maior e daí ficamos com uma leitura incompleta. Busquei no guia melhorar isso, não explicar a tecnologia Java em si, mas focar no exame, com pegadinhas, o que você deve ter no “sangue”  para o exame  e o que precisa ir para “decoreba”. Nisso criei capitulos  curtos, porem ricos em conteúdo e que dar para ler em até 20 minutos e ainda manter-se atualizado e dando um refresh no cérebro sobre os assuntos que estão tendo mais dificuldades.

E antes que perguntem. O livro não substitui o livro da Kathy Sierra, pelo contrario ele vem como um material auxiliar. Ah outro detalhe, eu busquei usar uma linguagem não muito formal nas explanações para que o leitor acredite está conversando comigo. 🙂

Quem adquirir o livro, terá  6 mini-simulados (portugues e ingles) para poder brincar antes do exame real.  Para adquirir o simulado, basta seguir os passos que estão nas primeiras páginas do Guia de Bolso

Para detalhes, descontos : http://www.lcm.com.br/index.php?Escolha=20&Livro=L00852

Se vc tem pressa e deseja adquirir o livro o mais rápido possivel e pode esperar a entrega por uma transpordora, pode ir até uma livraria Saraiva mais perto e adquirir um exemplar, veja onde fica a loja mais proxima: http://www.livrariasaraiva.com.br/inst/lojas_fisicas/

Agradecimentos

Quero agradecer a uma pessoa  que ajudou bastante  desde o contato com a editora até as revisões  e dicas. O nosso famoso autor brasileiro Edson Gonçalves .    O qual tenho uma grande admiração profissional e alem de ser  um dos meus melhores amigos. Abraco e sucessso para você. Nem preciso dizer nada né?

E outro amigo o qual considero como irmao: Mario (Razec).

E uma pessoa que é outro  amigo o Juliano Martins (meu ex-Arquiteto  no projeto aqui na IBM). Tem uma colega de trabalho a Daniela Reis que deu uma força quando pensei em abandonar o barco. E ela acompanhou todo o processo bem do inicio mesmo, quase que seria a “mãe”.

Peço desculpas, por não colocar outros amigos, colegas, é que nesse momento não consigo pensar muito devido a sensação, emoçãovou esperar esse efeito passar e editar o post. Mas, agora está dificil.


Follow me: http://twitter.com/camilolope

abracos, guys.

Criando Projeto Struts no Eclipse Jboss tools

 

Olá Pessoal,

Nesse post veremos como criar um projeto Struts no Eclipse, veja como é bem simples ter um Struts Project usando o Jboss Tools. Se não tem o Jboss tools configurado no eclipse veja o “post relacionado”. O objetivo deste post é para quem está querendo dar os primeiros passos com Struts, porem nao sabe por onde começar.

Lets go…

 

 

Não irei abordar alguns conceitos tais como: vantagens, quando usar?, por que usar?. Na verdade isso daria um novo post. Para quem tiver interesse em saber mais sobre Struts podem dar uma olhada no link a seguir e também nas vagas de emprego para Java, tenho 99% de certeza de 10 vagas para programador JEE minimo 8 vão pedir do candidato Struts como requisito.

O que é Struts?

Post Relacionado

 

  1. Uma vez com o JBoss configurado, clique em File ==> Project

  2. Localize o diretório Jboss Tools Web

  3. E agora dentro do diretório Struts escolha Struts Project

  4. Clique em next

  5. Dê um nome ao seu projeto e clique em next

  6. Agora escolha o servidor. Nesse caso vamos usar usar TomCat 6

  7. clique em Next

  8. Clique em finish

  9. A estrutura criada deve ser a semelhante a imagem a seguir.

  10. Agora vamos criar uma classe Java com Struts que vai imprimir apenas uma mensagem no browser confirmando a execução do Struts. Portanto crie um package br.com.camilo.struts

  11. Agora crie uma nova classe no package criado no passo anterior, com o nome de TesteStruts tendo como SuperClass a classe Action do Struts. Veja como deve ficar:

  12. Agora atualize sua classe com o código abaixo

 

package br.com.camilo.struts;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
public class TesteStruts extends Action {
	public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) throws Exception{
		/* esse metodo retorna uma mensagem para o struts-config.xml
		 * ao chegar no arquivo struts-config.xml e encontrar o nome done
		 * a pagina eh encaminhada para um arquivo .jsp
		 */
		return mapping.findForward("done");}}

    Mas por que fazer o forward via arquivo .xml do Struts se posso fazer direto do arquivo .java colocando o xx.jsp ??

    A resposta é bem simples se o nome do arquivo mudar, e vc tem 10 classes que faz esse forward para aquele arquivo o que fazer? Atualizar manualmente arquivo por arquivo e se vc esquecer de 1 ou 2 ou mais. Se for 100 arquivos ? Então percebeu o problema? Com o .xml vc somente vai precisar alterar em um local o novo nome do arquivo. Claro que vc pode cair na mesma situação se inventar de alterar o nome de retorno para aquele tipo de redirecionamento, mas ai é outra situação.

     

    1. crie agora um arquivo .jsp chamado de teste.jsp (clique com o botão direito no projeto ==> New File ==> JSP )

    2. Dentro da tag <body> digite a mensagem que deseja visualizar para testar a funcionalidade do Struts.

    3. Agora abra o arquivo struts-config.xml no modo Source.(veja no rodapé do eclipse esta opção)

      Precisamos configurar agora o nosso arquivo .xml do Struts para fazer o redirecionamento é bem simples. Deixe conforme a seguir. Um

      Erro comum a ser cometido é o esquecimento de colocar / no path e o nome class em type.

      1. Para testar nossa aplicação vamos digitar http://localhost:8080/app/testando.do

      2. Esse .do vem la da configurado do arquivo web.xml, abra o arquivo e veja pq nesse caso devemos ter o .do. Não existe nenhum arquivo físico com esta extensão é apenas um nome lógico utilizado e uma recomendação.

      3. Antes de testar aplicação precisamos reiniciar o TomCat então clique no botão do meio.

        Se não encontra-lo, veja em que perspectiva vc está usando. Deveria ser Java EE

      4. Agora abra o webbrowser dentro do próprio eclipse

      5. E digite o endereço abaixo, caso seguiu o mesmo nome usado nesse post

        http://localhost:8080/BlogStruts/testando.do

      6. O resultado deve ser o seguinte:

         

      Bom vou ficando por aqui e espero que tenham gostado dessa pequena introdução com Struts. Foi na verdade mais uma motivação para quem colocou o framework na lista de estudos. Abraco a todos e até o próximo post.

       

      Criando Projeto Struts no Eclipse usando Jboss tools

       

      Olá Pessoal,

       

      Nesse post veremos como criar um projeto Struts no Eclipse, veja como é bem simples ter um Struts Project usando o Jboss Tools. Se não tem o Jboss tools configurado no eclipse veja o “post relacionado”. O objetivo deste post é para quem está querendo dar os primeiros passos com Struts, porem nao sabe por onde começar.

       

      Lets go…

       

      Não irei abordar alguns conceitos tais como: vantagens, quando usar?, por que usar?. Na verdade isso daria um novo post. Para quem tiver interesse em saber mais sobre Struts podem dar uma olhada no link a seguir e também nas vagas de emprego para Java, tenho 99% de certeza de 10 vagas para programador JEE minimo 8 vão pedir do candidato Struts como requisito.

       

      O que é Struts?

       

      Post Relacionado

       

       

      1. Uma vez com o JBoss configurado, clique em File ==> Project

      2. Localize o diretório Jboss Tools Web

      3. E agora dentro do diretório Struts escolha Struts Project

        <struts1>

      4. Clique em next

      5. Dê um nome ao seu projeto e clique em next

        <struts2>

      6. Agora escolha o servidor. Nesse caso vamos usar usar TomCat 6

        <struts3>

      7. clique em Next

        <struts4>

      8. Clique em finish

      9. A estrutura criada deve ser a semelhante a imagem a seguir.

        <struts5>

      10. Agora vamos criar uma classe Java com Struts que vai imprimir apenas uma mensagem no browser confirmando a execução do Struts. Portanto crie um package br.com.camilo.struts

      11. Agora crie uma nova classe no package criado no passo anterior, com o nome de TesteStruts tendo como SuperClass a classe Action do Struts. Veja como deve ficar:

        <struts6>

      12. Agora atualize sua classe com o código abaixo

        package br.com.camilo.struts;

        import javax.servlet.http.HttpServletRequest;
        import javax.servlet.http.HttpServletResponse;

        import org.apache.struts.action.Action;
        import org.apache.struts.action.ActionForm;
        import org.apache.struts.action.ActionForward;
        import org.apache.struts.action.ActionMapping;

        public class TesteStruts extends Action {

        public ActionForward execute(ActionMapping mapping, ActionForm form,
        HttpServletRequest request, HttpServletResponse response) throws Exception{
        /* esse metodo retorna uma mensagem para o struts-config.xml
        * ao chegar no arquivo struts-config.xml e encontrar o nome done
        * a pagina eh encaminhada para um arquivo .jsp
        */

        return mapping.findForward(“done”);
        }
        }

       

      Mas por que fazer o forward via arquivo .xml do Struts se posso fazer direto do arquivo .java colocando o xx.jsp ??

      A resposta é bem simples se o nome do arquivo mudar, e vc tem 10 classes que faz esse forward para aquele arquivo o que fazer? Atualizar manualmente arquivo por arquivo e se vc esquecer de 1 ou 2 ou mais. Se for 100 arquivos ? Então percebeu o problema? Com o .xml vc somente vai precisar alterar em um local o novo nome do arquivo. Claro que vc pode cair na mesma situação se inventar de alterar o nome de retorno para aquele tipo de redirecionamento, mas ai é outra situação.

       

      1. crie agora um arquivo .jsp chamado de teste.jsp (clique com o botão direito no projeto ==> New File ==> JSP )

      2. Dentro da tag <body> digite a mensagem que deseja visualizar para testar a funcionalidade do Struts.

         

        Executando minha pagina com Struts
      3. Agora abra o arquivo struts-config.xml no modo Source.(veja no rodapé do eclipse esta opção)

        Precisamos configurar agora o nosso arquivo .xml do Struts para fazer o redirecionamento é bem simples. Deixe conforme abaixo:

        <code>

       

      Erro comum a ser cometido é o esquecimento de colocar / no path e o nome class em type.

       

      1. Para testar nossa aplicação vamos digitar http://localhost:8080/app/testando.do

      2. Esse .do vem la da configurado do arquivo web.xml, abra o arquivo e veja pq nesse caso devemos ter o .do. Não existe nenhum arquivo físico com esta extensão é apenas um nome lógico utilizado e uma recomendação.

      3. Antes de testar aplicação precisamos reiniciar o TomCat então clique no botão do meio.

        <struts7>

        Se não encontra-lo, veja em que perspectiva vc está usando. Deveria ser Java EE

      4. Agora abra o webbrowser dentro do próprio eclipse

        <struts8>

      5. E digite o endereço abaixo, caso seguiu o mesmo nome usado nesse post

        http://localhost:8080/BlogStruts/testando.do

      6. O resultado deve ser o seguinte:

        <struts9>

         

      Bom vou ficando por aqui e espero que tenham gostado dessa pequena introdução com Struts. Foi na verdade mais uma motivação para quem colocou o framework na lista de estudos. Abraco a todos e até o próximo post.

    JPA com Java Básico MySql

    olá pessoal, nesse post vou apresentar como fazer persistência de dados usando apenas JPA, mas com Java Básico o objetivo é ajudar aqueles que estão dando o primeiro passo com a tecnologia. Não confunda este post com este Java Básico + Hibernate JPA + Mysql são parecidos, mas aqui nos não vamos envolver nada de Hibernate, ou seja, será 100% JPA.

    Recomendado: Você vai precisar configurar a JPA no seu projeto Java, portanto veja no post abaixo:

    *Basta adicionar ao seu projeto o arquivo .jar referente a JPA do pacote hibernate annotations. Nada mais que isso, confira: Java Básico + Hibernate JPA + Mysql

    Outros posts relacionados:

    Preparando o ambiente desenvolvimento

    1. crie um Java project no eclipse

    2. E monte conforme a estrutura abaixo:

    3. A classe TesteJPA  deve conter o método main.

    4. Não esqueça de adicionar o .jar ao seu projeto. Se tem dúvida com fazer isso veja nos posts citados acima.

    Preparando Banco de Dados

    Vamos usar o MySql como BD e vou levar em conta que você já tem o mesmo instalado e configurado. Crie apensa um DataBase e uma table para este. Se quiser seguir o exemplo do post o nosso ficou assim:

    DataBase: sistemas Table: Cliente

    A tabela cliente possui os seguintes campos como VARCHAR(nome,cidade,sobrenome)e um Integer(id). O id é auto_increment e chave-primaria da tabela.

    Desenvolvimento

    Explicando as anotações
    @Entity = é uma entidade que representa uma class bean;
    @Table = mapeia com o nome da tabela. Aqui eu coloquei o table para explicar, mas poderia omitir levando em conta que eu teria uma table no meu BD com o mesmo nome da minha class Bean. Ou seja, se você não especificar qual será a tabela do BD, será considerada o nome do Bean. Tenha atenção se você tem tabelas com nomes diferentes em relação ao seu bean;
    @Id = tem relação com a chave primaria da sua tabela;
    @Column = mapeia com as colunas da sua tabela, segue a mesma regra de table, quando ter colunas com nomes diferentes este campo eh obrigatório, caso contrario non-required ;

    Deixe sua classe Cliente.java conforme abaixo:

    package br.com.bean;
    import javax.persistence.Entity;
    import javax.persistence.GeneratedValue;
    import javax.persistence.GenerationType;
    import javax.persistence.Id;
    import javax.persistence.Table;
    @Entity
    @Table(name="cliente")
    public class Cliente {
    @Id
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    	private int id;
    	private String nome;
    	private String cidade;
    	private String sobrenome;
    
    	public int getId() {
    		return id;
    	}
    	public void setId(int id) {
    		this.id = id;
    	}
    	public String getNome() {
    		return nome;
    	}
    	public void setNome(String nome) {
    		this.nome = nome;
    	}
    	public String getCidade() {
    		return cidade;
    	}
    	public void setCidade(String cidade) {
    		this.cidade = cidade;
    	}
    	public String getSobrenome() {
    		return sobrenome;
    	}
    	public void setSobrenome(String sobrenome) {
    		this.sobrenome = sobrenome;
    	} }

    A classe ClienteDAO é responsável por implementar o CRUD usando a JPA, vamos ver aqui o salvar, excluir e atualizar. Então atualize seu arquivo ClienteDAO.java conforme abaixo:

    package br.com.dao;
    
    import javax.persistence.EntityManager;
    import javax.persistence.EntityManagerFactory;
    import javax.persistence.Persistence;
    
    import br.com.bean.Cliente;
    
    public class ClienteDAO {
    
    	EntityManagerFactory emf; 
    
    	private EntityManager getEntityManager(){
    		return emf.createEntityManager();
    	}
    	public ClienteDAO() {
    	emf = Persistence.createEntityManagerFactory("sistemas");
    	}
    
    	public void salvar(Cliente cliente){
    		EntityManager em = getEntityManager();
    		try{
    			em.getTransaction().begin(); //inicia o processo de transacao
    			em.persist(cliente);//permite fazer insercoes e atualizacoes no bd
    			em.getTransaction().commit();//realizo as alteracoes no banco
    		}catch (Exception e) {
    			em.getTransaction().rollback();// se rolar uma excecao cancelo acao
    			e.printStackTrace();//mostro o percurso de onde veio as excecoes
    		}finally{
    			em.close();
    		}
    	}
    	public void excluir(Cliente cliente){
    		EntityManager em = getEntityManager();
    
    		try{
    			em.getTransaction().begin();
    			cliente = em.merge(cliente);
    			em.remove(cliente);
    			em.getTransaction().commit();
    		}catch (Exception e) {
    			em.getTransaction().rollback();
    		}
    	}
    	public void atualizar(Cliente cliente){
    		EntityManager em = getEntityManager();
    		try{
    			em.getTransaction().begin();
    			em.merge(cliente);
    			em.getTransaction().commit();
    		}catch (Exception e) {
    			em.getTransaction().rollback();
    		}}
    	}
    1. Fazendo a persistência de dados no arquivo persistence.xml. Precisamos passar as informações do BD, user, password etc para o arquivo persistence.xml, assim conseguimos a conexao com o nosso BD. Então atualize o arquivo .xml conforme o code abaixo(tive que dar um espaco entre os <  >  pois o plugin para code não estava reconhecendo com XML):

      org.hibernate.ejb.HibernatePersistence
      < persistence-unit name="sistemas" transaction-type="RESOURCE_LOCAL">
      org.hibernate.ejb.HibernatePersistence
              
      		br.com.bean.Cliente
      
                  
                  < property name="hibernate.dialect" value="org.hibernate.dialect.MySQLInnoDBDialect" />
                  < property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver" />
                  < property name="hibernate.connection.url" value="jdbc:mysql://localhost/sistemas" />
                  < property name="hibernate.connection.username" value="camilo" />
                  < property name="hibernate.connection.password" value="integrator" />
       
                  < property name="hibernate.show_sql" value="true" />
                  < property name="hibernate.format_sql" value="true" />
                  < property name="use_sql_comments" value="true" />
      
              < /properties>
      
          < /persistence-unit>
    2. Atualizando a classe TesteCliente.java. Precisamos ter uma classe para testar o nosso CRUD com JPA. Para isso teremos uma classe java tradicional com o método main. Eu comentei algumas linhas apenas para poder testar outros recursos. Mas, levando em conta que sua table não há nenhuma informação, vamos executar primeiramente a opção salvar.

      package br.com.teste;
      
      import br.com.bean.Cliente;
      import br.com.dao.ClienteDAO;
      
      public class TesteCliente {
      
      	/**
      	 * @param args
      	 */
      	public static void main(String[] args) {
      		ClienteDAO clidao = new ClienteDAO();
      		Cliente cliente = new Cliente();
      	//	cliente.setCidade("salvador");
      		cliente.setNome("recife");
      		cliente.setSobrenome("neto");
      		//cliente.setId(12);
      		clidao.salvar(cliente);
      		//clidao.excluir(cliente);
      	//cliente.setCidade("Sao Paulo");
      		//cliente.setId(15);
      		//clidao.atualizar(cliente);
      	}
      }

    Não Esqueça:

    • Esteja certo que você deu um start no seu BD.

    • não esqueça dos .jars no seu projeto.

    Verificando dados no BD

    1. Acesse seu banco de dados e veja se a informação inserida realmente consta na tabela. Aqui usei uma ferramenta chamada Mysql Query Browser para facilitar o trabalho com o BD. No meu caso eu fiz varias alterações.

    Vou ficado por aqui e espero que tenham gostado do post. Para quem está em primeiro contato com a tecnologia pode parecer difícil, estranho ou complicado essa estrutura da JPA, mas pode ter certeza que é mais produtivo no ciclo de desenvolvimento.

    Abraços e até o próximo post.

    JPA com Jboss

    womanjava

    olá pessoal, nesse post vou mostrar como criar um JPA Project e seus beneficios através da ferramenta Jboss Tools. Em um dos meus posts eu expliquei como instalar e configurar o Jboss tools no eclipse.

    Montar uma estrutura JPA na “mão-grande” é um pouco cansativo e não tão produtivo quando se tem auxilio de uma ferramenta como Jboss tools. Nao estou dizendo que a ferramenta vai programar por você, ela apenas vai fazer a parte operacional não relacionada a programação, e você como bom desenvolvedor vai estar focado na parte lógica do negócio.

    Lets go…

    Outros posts:

    1. Abra o Eclipse e o seu workspace (uma vez que tenha instalado o plugin Jboss tools)

    2. Clique em New ==> Project

    3. Na lista que aparece vá até o diretório JPA.

    4. Escolha JPA Project, conforme a imagem abaixo:

      japproject

    5. Clique em next e na próxima pagina vamos dar o nome ao projeto e configurar o servidor. Aqui estamos usando o TomCat. Veja na imagem a seguir:

      namejpa

    6. Clique em next duas vezes. Até encontrar a tela a seguir. Agora precisamos configurar JPA e a plataforma. Depois clique em Finish

      jpaeclipse

    7. Pronto! Agora vc ja tem um projeto apto a usar JPA com os .jars adicionados estrutura ja montada pelo Jboss tools. Confira na imagem abaixo:

      jpaestrutura

    Se você não conhecia o Jboss tools fica ai um pouquinho como a ferramenta pode ajudar no dia-dia.. 😉

    Abraços! See you later…


    Follow me: http://twitter.com/camilolope