Olá queridos leitores, (Aula 1 e 2 no final do post)
Desculpe pela demora em postar a terceira parte da aplicação de exemplo, mas fica uma recomendação:
- Sempre que ler um post, deixe um comentário, se está gostando ou não do post. Assim o escritor fica mais animado e sabe que existem pessoas lendo!
Bom, vamos lá..
Crie a classe UserSessionFacadeImpl, que será a implementação da façade que atuará como EJB do tipo Stateless SessionBean.
Indique que a classe é um Stateless Session Bean através da notação @Stateless
Crie a propriedade:
private EntityManager entityManager;
Importe-a de javax.persistence.
Anote-a com a anotação @PersistenceContext(unitName=”UserJPA”)
Isso fará com que a unidade de persistência seja injetada na instância do SessionBean.
O nome UserJPA está declarado em META-INF/persistence.xml
No método create, que será implementado, coloque o seguinte código:
public void create(User user) {
entityManager.persist(user);
}
Isto irá persistir o usuário recém-criado.
No método findAllDepartments, faça o seguinte:
@SuppressWarnings(”unchecked”)
public List findAllDepartments() {
return entityManager.createQuery(”from Department d”).getResultList();
}
A notação @SuppressWarnings é para que não tenhamos warnings desnecessários.
Finalizamos a criação JPA do projeto e EJB3.
Criaremos agora a camada WEB que fará uso de JPA e EJB3.
Para isso, crie um projeto Dynamic Web Project.
Em project name coloque UserWAR, em configurations coloque JSF v1.2 Project
Marque a opção Add project to an EAR, clique em next, clique em next novamente até a parte que apareça como título JSF Capabilities, e marque a opção Server Supplied JSF Implementation. Lá em baixo, em URL Mapping Patterns, clique em ADD, e adicione “*.jsf”, clique em finish. O projeto WEB será criado.
Criaremos agora o bean do JSF que receberá as requisições de nossas páginas. O primeiro passo será setar a dependencia do projeto WEB com o projeto JPA. Clique com o botão direito no projeto WEB, vá em Properties, vá em J2EE Module Dependencies e selecione UserJPA. Clique em Apply.
Vamos criar uma classe no projeto web. Em package, coloque com.ttwiter.user.form. Em name, digite: UserForm, clique em finish.
Crie a propriedade:
@EJB(name="UserEAR/UserSessionFacadeImpl/local")
private UserSessionFacade userSessionFacade;
A String “UserEAR/UserSessionFacadeImpl/local” é o endereço JNDI o qual o EJB está publicado no JBoss.
Crie a propriedade:
private User user = new User();
Gere os getters/setters para user.
Criaremos agora o método getDepartments que retornará a lista de departamentos cadastrados.
public SelectItem[] getDepartments() {
List<Department> departments = userSessionFacade.findAllDepartments();
List<SelectItem> items = new ArrayList<SelectItem>(departments.size());
for(Department department : departments) {
items.add(new SelectItem(department.getId(), department.getName()));
}
return items.toArray(new SelectItem[items.size()]);
}
Criaremos agora o método create, que será responsável por inserir na base.
public String create() {
try {
userSessionFacade.create(user);
FacesContext.getCurrentInstance().addMessage("", new FacesMessage("Success"));
} catch (Exception e) {
e.printStackTrace();
FacesMessage message = new FacesMessage(e.getMessage());
message.setSeverity(FacesMessage.SEVERITY_ERROR);
FacesContext.getCurrentInstance().addMessage("", message);
}
return null;
}
Abra o arquivo WEB-INF/faces-config.xml, clique na Aba ManagedBean que fica na parte inferior, clique em Request, add, coloque com.ttwiter.user.form.UserForm e finalize a criação do ManagedBean.
Bom, esta é a terceira parte, se alguém encontrar algum erro por favor reporte! E como eu disse no começo, se estiver acompanhando avise!
Aula 2
Aula 1
Tags: Aula 3,Dali,eclipse,EJB3,Exemplo,Faces-Config,J2EE,Java,Java Server Faces,JEE,JPA Tools,JSF,ManagedBean
Categorias: Cursos, Tecnologia, Tutorial
13 comentários »