Java 如何在Tomcat上的web服务中获取EntityManagerFactory
在Tomcat服务器上的web服务(METRO 2.0)中获取/实例化EntityManagerFactory是否有比在web服务本身的静态初始值设定项中更好的方法/位置Java 如何在Tomcat上的web服务中获取EntityManagerFactory,java,tomcat,jpa,eclipselink,java-metro-framework,Java,Tomcat,Jpa,Eclipselink,Java Metro Framework,在Tomcat服务器上的web服务(METRO 2.0)中获取/实例化EntityManagerFactory是否有比在web服务本身的静态初始值设定项中更好的方法/位置 @WebService public class TestWebService { private static EntityManagerFactory entityManagerFactory; static { entityManagerFactory = Persistenc
@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;
}
}
@WebService
公共类TestWebService{
私有静态EntityManagerFactory EntityManagerFactory;
静止的
{
entityManagerFactory=Persistence.createEntityManagerFactory(“TestWSPU”);
}
@网络方法
公共列表getUsers(){
EntityManager em=EntityManager工厂。createEntityManager();
List users=em.createQuery(“来自用户u”,User.class).getResultList();
em.close();
返回用户;
}
}
如果您使用的是普通的Tomcat(例如,非TomEE),则可以使用ServletContextListener
创建EMF,然后将其放入单例中。然后从该单例中,可能会公开一个方法,为您提供一个EntityManager