Salve a tutti, sto utilizzando NetBeans 7.1 IDE con Glassfish 3.1.2 per sviluppare una semplice applicazione web J2EE v6. L'applicazione, fin'ora, non è altro che l'applicazione per la gestione dei contatti trovata in un tutorial qui. Ho cercato in lungo e in largo una soluzione ma non ne riesco a uscirne.
L'applicazione usa PrimaFaces 3.2 con JSF 2.1.7.
File ContactsBean.java
File web.xmlcodice:package com.organizer.ejb; import com.organizer.entity.Contact; import java.util.List; import javax.annotation.Resource; import javax.faces.application.FacesMessage; import javax.faces.bean.ManagedBean; import javax.faces.bean.RequestScoped; import javax.faces.context.FacesContext; import javax.faces.event.ActionEvent; import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.PersistenceUnit; import javax.persistence.Query; import javax.transaction.SystemException; import javax.transaction.UserTransaction; @ManagedBean @RequestScoped public class ContactsBean { private List<Contact> contacts; private Contact contact=new Contact(); @PersistenceUnit(unitName="PersonalOrganizerJPA") private EntityManagerFactory emf; @Resource private UserTransaction utx; public ContactsBean() { } public List<Contact> getContacts() { EntityManager em = emf.createEntityManager(); Query query = em.createQuery("SELECT c FROM Contact c"); contacts = (List<Contact>)query.getResultList(); return contacts; } public void salva(ActionEvent event){ EntityManager em = emf.createEntityManager(); try { utx.begin(); em.joinTransaction(); em.persist(contact); utx.commit(); showGrowlInsMessage(); } catch (Exception e) { try { utx.rollback(); } catch (IllegalStateException e1) { showGrowlErrorMessage(); e1.printStackTrace(); } catch (SecurityException e1) { showGrowlErrorMessage(); e1.printStackTrace(); } catch (SystemException e1) { showGrowlErrorMessage(); e1.printStackTrace(); } }finally{ em.close(); } contact=null; } public void aggiorna(ActionEvent event){ EntityManager em = emf.createEntityManager(); try { utx.begin(); em.joinTransaction(); em.merge(contact); utx.commit(); showGrowlUpdMessage(); } catch (Exception e) { try { utx.rollback(); } catch (IllegalStateException e1) { showGrowlErrorMessage(); e1.printStackTrace(); } catch (SecurityException e1) { showGrowlErrorMessage(); e1.printStackTrace(); } catch (SystemException e1) { showGrowlErrorMessage(); e1.printStackTrace(); } }finally{ em.close(); } contact=null; } public void elimina(ActionEvent event){ EntityManager em = emf.createEntityManager(); try { utx.begin(); em.joinTransaction(); Contact c = em.find(Contact.class, contact.getId()); em.remove(c); utx.commit(); this.showGrowlDelMessage(); } catch (Exception e) { try { utx.rollback(); } catch (IllegalStateException e1) { showGrowlErrorMessage(); e1.printStackTrace(); } catch (SecurityException e1) { showGrowlErrorMessage(); e1.printStackTrace(); } catch (SystemException e1) { showGrowlErrorMessage(); e1.printStackTrace(); } }finally{ em.close(); } contact=null; } public void setContacts(List<Contact> contacts) { this.contacts = contacts; } public Contact getContact() { return contact; } public void setContact(Contact contact) { this.contact = contact; } private void showGrowlUpdMessage(){ FacesContext context = FacesContext.getCurrentInstance(); context.addMessage(null, new FacesMessage("Successful", "Contatto aggiornato con successo")); } private void showGrowlInsMessage(){ FacesContext context = FacesContext.getCurrentInstance(); context.addMessage(null, new FacesMessage("Successful", "Contatto inserito con successo")); } private void showGrowlDelMessage(){ FacesContext context = FacesContext.getCurrentInstance(); context.addMessage(null, new FacesMessage("Successful", "Contatto eliminato con successo")); } private void showGrowlErrorMessage(){ FacesContext context = FacesContext.getCurrentInstance(); context.addMessage(null, new FacesMessage("Errore", "Operazione fallita")); } }
codice:<?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> <context-param> <param-name>javax.faces.PROJECT_STAGE</param-name> <param-value>Development</param-value> </context-param> <servlet> <servlet-name>Faces Servlet</servlet-name> <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>Faces Servlet</servlet-name> <url-pattern>/faces/*</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>Faces Servlet</servlet-name> <url-pattern>/faces/*</url-pattern> <url-pattern>*.jsf</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>Faces Servlet</servlet-name> <url-pattern>*.faces</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>Faces Servlet</servlet-name> <url-pattern>*.xhtml</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>faces/ContactsPage.xhtml</welcome-file> </welcome-file-list> </web-app>

Rispondi quotando
