这可能是两个问题,所以...对不起,如果我错了,请纠正我。
我必须在一台机器中部署一个用JPA,JSP和Glassfish 3.1.2开发的Web服务,该机器只在Windows 7上安装了apache Tomcat 7作为服务器。
我真的不知道apache如何在外部连接到数据库,或者如果你不使用TomEE,那真的可以。
我知道在Glassfish中你可以拥有一个连接池和一个jdbc资源,如果你正在使用JPA,那就是与数据库的连接如何工作(kindof),所以你可以部署.war文件。但是,如果你只有一个Tomcat并且应用程序正在使用JPA,那么它不会将自己连接到数据库(它没有带有连接凭据的类),我该如何实现?
或者,我可以在Glassfish上部署Web服务的.war,然后由仅在客户端使用apache Tomcat的应用程序使用吗?我是否混合了不应该混合的概念?
任何启蒙都受到高度赞赏。
答案 0 :(得分:0)
您可以将Tomcat与JPA一起使用,甚至可以在独立的Java应用程序中使用它。在persistence.xml中定义持久性单元名称,确保事务类型为RESOURCE_LOCAL(您不能在Tomcat中使用JTA,请务必检查),并使用以下内容获取对EM的引用
EntityManagerFactory emf = Persistence.createEntityManagerFactory("persistenceUnitName");
em = emf.createEntityManager();
最后,将jpa提供者jar添加到Tomcat,有一些例子(我从未做过,但我确信有些Tomcat专家可以帮忙)
另一个选项也可以使用,即使用部署在另一台服务器上的客户端来使用您的Web服务
祝你好运!答案 1 :(得分:0)
如果您的应用程序使用高级Java EE功能(JTA,CDI),它将无法在Tomcat上运行。如果它使用JSTL,则必须将一个JSTL库添加到tomcat安装中。阅读文档,应该在某处说明,但我不只是将战争部署到tomcat。
如果您只是想开发一个消耗Web服务并显示结果的 relay webapp,那么将在tomcat上独立运行webservice。