是否可以使用apache tomcat使用客户端上的应用程序使用glassfish部署的Web服务?

时间:2014-10-21 21:53:59

标签: java tomcat jpa glassfish

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

我必须在一台机器中部署一个用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的应用程序使用吗?我是否混合了不应该混合的概念?

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

2 个答案:

答案 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。