2013-07-17 72 views
0

在Tomcat服務器上的Web服務(METRO 2.0)中獲取/即時訪問EntityManagerFactory比在Web服務本身的靜態初始化程序中獲得更好的方式/場所嗎?如何在Tomcat上的Web服務中獲取EntityManagerFactory

@WebService 
public class TestWebService { 

    private static EntityManagerFactory entityManagerFactory; 

    static 
    { 
     entityManagerFactory = Persistence.createEntityManagerFactory("TestWSPU"); 
    } 

    @WebMethod 
    public List<User> getUsers() { 
     EntityManager em = entityManagerFactory.createEntityManager(); 

     List<User> users = em.createQuery("from User u", User.class).getResultList(); 

     em.close(); 

     return users; 
    } 
} 

回答

2

如果你使用普通的Tomcat(例如,不TomEE),你可以使用一個ServletContextListener創建EMF,然後把它變成一個單例。然後從這個單身人士可能會暴露一種方法給你一個EntityManager

相關問題