playframework - 将 play 作为 war 文件部署到 servlet 容器中,即使它大量使用 JPA?

标签 playframework playframework-2.0

我是个新手,事实上我现在读到了关于它的内容,我应该说些什么......问题胜于问题。目前,我正在启动一个依赖于许多特殊 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/

相关文章:

scala - 如何在不重新启动的情况下重新加载 messages.en?

selenium-webdriver - 从集成测试中加载 javascript Assets (Play/Selenium)

java - 在play 2.0框架中执行查询时出错

java - 如何在 Play 的 2.0 WebSocket 中验证用户身份?

java - 无法为 Playframework 导入 com.avaje.ebean.Model

java - 如何跨所有执行上下文在 play 框架日志中记录请求 ID

playframework - 运行 play 框架时不支持 Major.minor 版本 51.0

java - Play Framework - 值登录不是 controllers.Application 的成员

PlayFramework 2.0.x -> 2.1-RC 迁移

java - FakeApplication 使用特定的 application.conf?