Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在Tomcat上的web服务中获取EntityManagerFactory_Java_Tomcat_Jpa_Eclipselink_Java Metro Framework - Fatal编程技术网

Java 如何在Tomcat上的web服务中获取EntityManagerFactory

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

在Tomcat服务器上的web服务(METRO 2.0)中获取/实例化EntityManagerFactory是否有比在web服务本身的静态初始值设定项中更好的方法/位置

@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