我是个新手,事实上我现在读到了关于它的内容,我应该说些什么......问题胜于问题。目前,我正在启动一个依赖于许多特殊 Java 库(hibernate-spatial、jts 等)的项目。因为它还应该实现一个全面的 REST API,所以我不得不在 Django 和经典的 JavaEE Glassfish 应用程序之间做出决定。
但是现在我认为通过比赛我可以两全其美,我真的很想深入研究这一点。
play 的一个功能,我真的无法想象,是将 play 应用程序作为 WAR 文件部署到一个简单的 Servlet 容器,比如 tomcat。
那么,如果我的 play 应用程序使用基于 hibernate/hibernate-spatial 的 JPA 持久层,仍然可以作为 WAR 文件部署到简单的 tomcat servlet 容器中吗?或者我至少需要一个 JavaEE 应用服务器?
我不敢相信...
最佳答案
Play 2 应用程序可以部署为 war
使用 Play 2 War plugin .我自己没有经验,但现在似乎是一个可行的解决方案。从我从论坛上读到的,WAR 包装应该仍然在 future 版本的卡片上。
将 Play 2 应用程序部署为一场 war 并没有什么特别之处。 Play 2 应用程序“只是”一个响应 HTTP 请求*的 Java 程序,就像任何 Java Servlet 应用程序一样。如果某个插件确保 servlet 容器响应的 HTTP 请求被正确转发到 Play 2 应用程序,则它可以在 servlet 容器中按原样*运行。
一般来说,Play 2 允许您使用几乎所有可用的 Java 技术。但是,由于 Play 2 应用程序本身不在 servlet 中运行,因此它禁止您使用一组假定您使用 Java servlet 响应请求的 Java EE 库。这对于 Hibernate 或其他 ORM/数据库库来说没有问题,但是如果您的库需要访问 HTTP 通信(例如 Spring Web Security),这将是一个问题。
如果 Django 是您项目的一个选项,我怀疑您的 Java 要求是否包含这样一个特定的库。您还应该检查实际的 servlet 容器是否是您的应用程序的必需品 - Play 应用程序在没有它的情况下也能正常运行。*
我知道这是一种反常的过度简化
关于playframework - 将 play 作为 war 文件部署到 servlet 容器中,即使它大量使用 JPA?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14985783/