这可能是两个问题合而为一,所以...对不起,如果我错了,请纠正我。

我必须在仅将apache Tomcat 7作为安装在Windows 7上的服务器的计算机上部署使用JPA,JSP和Glassfish 3.1.2开发的Web服务。

我真的不知道apache如何从外部连接到数据库,或者如果您不使用TomEE,那是否真的有可能。

我知道在Glassfish中,您可以有一个连接池和一个jdbc资源,如果您使用的是JPA,则这就是与数据库的连接方式(kindof),因此可以部署.war文件。但是,如果您只有Tomcat,而该应用程序正在使用JPA,则它不会将自身连接到数据库(它没有具有连接凭据的类),如何实现呢?

或者,我可以在Glassfish上部署Web服务的.war,然后由仅在客户端上与apache Tomcat一起使用的应用程序使用吗?我在混合不应混用的概念吗?

任何启发都受到高度赞赏。

最佳答案

您可以将Tomcat与JPA一起使用,甚至可以在独立的Java应用程序中使用它。在persistence.xml中定义一个持久性单元名称,确保事务类型为RESOURCE_LOCAL(您不能在Tomcat中使用JTA,请确保对此进行检查),并使用以下内容获得对EM的引用

EntityManagerFactory emf = Persistence.createEntityManagerFactory("persistenceUnitName");
em = emf.createEntityManager();


最后,将jpa provider罐子添加到Tomcat中,有一些示例(我从未做过,但是我确定有些Tomcat专家可以帮忙)

另一个选项也可以工作,即使用部署在另一台服务器上的客户端使用您的Web服务

祝好运!

07-27 18:21