Aplicação de exemplo usando Eclipse, JPA Tools, JBoss (Aula 3)

Diego Raphael Pedroza Santiviago - 24 de Maio de 2008 às 17:17

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

13 Respostas a “Aplicação de exemplo usando Eclipse, JPA Tools, JBoss (Aula 3)”

Diogo escreveu um comentário em 25 de Maio de 2008 - 15:02

Muito obrigado Diego por postar a 3º parte, ainda não encontrei nenhum erro, mas se eu encontrar pode ter certeza que te aviso!

VAleu

Diogo escreveu um comentário em 25 de Maio de 2008 - 22:28

Diego, preciso criar uma jsp fazendo chamadas pras classes java né?

Rosimiro escreveu um comentário em 26 de Maio de 2008 - 2:21

Esse tutorial é muito bom, serve de incentivo aos iniciantes. Valeu pela ajuda… Aguardamos novidades!!!

Diego Raphael Pedroza Santiviago escreveu um comentário em 26 de Maio de 2008 - 9:56

Isso Diogo, está no caminho certo.
Próxima aula será o material JSP fazendo a chamada aos métodos.

Diogo escreveu um comentário em 26 de Maio de 2008 - 22:34

então diego, será que dava pra vc me dar esta força…eu to me perdendo pra fazer a chamada aos metodos…queria simular uma aplicação…mas to perdido…só pra te deixar avisado…sou iniciante ta…hehehehe…mas sou curioso e não paro de perguntar…se vc achar bom, teremos papo pra um bom tempo!

Muito obrigado!

Diogo escreveu um comentário em 26 de Maio de 2008 - 22:39

aaaa, e lembrando que vc me ajudaria mto na entrega do meu trabalho, que é pra terça feira (amanhã no caso) hehehe…posso entregar atrasado, mas o prazo é sexta..se der pra adiantar ótimo, se não, eu aguardo!

Valeu

Diego escreveu um comentário em 26 de Maio de 2008 - 22:44

Então diogo, estou lotado de coisas pra fazer, mas amanhã eu posto, eu garanto.. Só falta a parte da criação da página JSP e a chamada aos métodos.

Abraço!

Diogo escreveu um comentário em 26 de Maio de 2008 - 23:23

Diego, a classe UserSessionFacadeImpl deve implementar UserSessionFacade para que eu possa implementar os métodos da interface né?

outra dúvida:

Este trecho que vc descreveu:

@SuppressWarnings(”unchecked”)
public List return entityManager.createQuery(”from Department d”).getResultList();
}

o correto por acaso seria

@SuppressWarnings(”unchecked”)
public List findAllDepartments() {
return entityManager.createQuery(”from Department d”).getResultList();
}

valeu!

Diego escreveu um comentário em 26 de Maio de 2008 - 23:25

Ah sim, foi erro na formatação do código!
Mas valeu a dica..

Ricardo da Rosa escreveu um comentário em 1 de Outubro de 2008 - 17:27

Olá,

primeira coisa, muito bom este seu tutorial.

Gostaria de saber quando sai a parte de desenvolvimento da jsp para utilizar toda esta parte já desenvolvida.

[]´s Ricardo

Eduardo escreveu um comentário em 15 de Outubro de 2008 - 11:51

Muito Legal o tutorial, me ajudou muito, valeu mesmo!!!

Ricardo Jefferson escreveu um comentário em 4 de Novembro de 2008 - 22:01

Muito bom mesmo Diogo, parabens, este material esclareceu muita coisa em que eu tinha duvida, muito obrigado mesmo.

Keith escreveu um comentário em 6 de Novembro de 2008 - 11:02

Muito bom o tutorial…
a parte da construção da jsp já saiu?
você vai utilizar servlets?

abcs

Deseja comentar?