Aplicação Web Completa JSF EJB JPA JAAS

Olá pessoal, bom dia.

Hoje vai ser o maior post que eu já fiz! Vamos ver uma aplicação completa. Ela será feita com tecnologias mais novas, mas darei dicas de como adaptar algumas partes para alguma tecnologia mais antiga assim que possível.

Ao final desse post você irá encontrar o código fonte para download. Pode utilizar como quiser. Basta ir para a última página e fazer o download. o/

Caso você baixe o código e não entenda alguma parte do código, eu expliquei tudo pelo decorrer desse post. Basta você ler a parte que te interessa e tirar suas dúvidas.

A aplicação será feita das seguintes tecnologias:

  • JSF 2.0 Mojarra – Utilizando Managed Beans de Request e Session.
  • Internacionalização das mensagens – Arquivo onde são definidas todas as mensagens do sistema, com isso você poderá facilmente traduzir seu programa.
  • Arquivo CSS padrão sendo utilizado como biblioteca.
  • EJB 3 – Utilizando DAO e Facades como @Stateless.
  • Generic DAO – Um DAO Genérico que terá as funções básicas de um cadastro facilitando assim a criação de entidades.
  • JPA 2 – Para mapear nossas classes no DB.
  • JAAS – Para controlar o login e nível de acesso do usuário.
  • MVC – Utilizarei o padrão MVC com pequenas alterações.
  • Postgres como banco de dados, mas vou mostrar como configurar para o MySQL também.

Não irei aplicar JUnit para teste dos métodos da View/Façade/Model, mas no link a seguir você poderá ver a técnica utilizar para usar o JUnit para testar os ManagedBeans do JSF: JUnit com HSQLDB, JPA e Hibernate.

Ferramentas para o post de hoje:

Este post será feito em várias páginas. Essa primeira página consta apenas os detalhes técnicos que serão utilizados na aplicação.

Não irei programar o meu modelo/DAO para interface, apenas para poupar espaço. Lembre de sempre programar para interface (Design Pattern – Strategy).

Antes de avançar, tenha certeza de que você instalou o JBoss Tools e depois o JBoss 7 (nessa ordem).

Full WebApplication JSF EJB JPA JAAS

Hello, how are you?

This post will be the biggest so far in my blog! We will see a full web application. It will be done will the newest technologies (until today), but I will give some hints to show how to adapt this post to older technologies.

In the end of this post you will find the source code to download. You can use it as you wish. Just go to the last page and do the download. o/

If you downloaded the code and did not understand something, in this post I will explain every detail found in the code. Just read the subject inside this post that you want.

I will list bellow the technologies that I will use in this post:

  • JSF 2.0 Mojarra – With ManagedBeans as RequestScope and SessionScope.
  • Message Internationalization – File that will have all the messages of our system; it will be easier to translate you pages.
  • Default CSS file that will be imported as a library.
  • EJB 3 – Our DAOs and Façades will be @Stateless.
  • Generic DAO – A generic DAO that will have the CRUD actions to make our life easier.
  • JPA 2 – To map our classes in the DB
  • JAAS – To control the login and the user access to the pages.
  • MVC – I will use this pattern with small modifications.
  • Postgres as database, but I will show how to set up your app to MySQL also.

I will not use TDD – JUnit to test our View/Model/Classes, but in the following link you can see a technique to use the JUnit to test your ManagedBeans: JUnit with HSQLDB, JPA and Hibernate.

Tools that we will use:

This post will have several pages; this first page is just to show the technical details of the post today.

I will not code to interface my model/DAO, just to save space. Remember that you should always code to interfaces (Design Pattern – Strategy).

Before you go to the next pages be sure that you installed the JBoss Tools and the JBoss 7 in this exactly order.