在 weblogic 上部署 play 框架
Posted
技术标签:
【中文标题】在 weblogic 上部署 play 框架【英文标题】:Deploying play framework on weblogic 【发布时间】:2013-07-17 06:35:12 【问题描述】:如何将 play 2.1 Web 应用程序部署到 oracle weblogic 10.3?
Weblogic 正在 Windows Server 2008 r2 上运行。
我的应用程序有网络套接字,我知道它们在部署时存在问题。
编辑:
我了解 servlet 3.0 不支持 Web 套接字。如果是这样,Play 在自己的服务器上运行什么?
【问题讨论】:
好问题!我有同样的问题... 【参考方案1】:Play 不是 Java EE 框架。它不使用 servlet,也不本地部署到应用程序服务器。相反,它带来了自己的完整堆栈。您只需独立运行应用程序,无需任何外部应用程序服务器。 (将您的 Play 应用程序放在负载平衡网络服务器后面很常见,但这不是现在的重点。)
虽然exists a plugin that lets you bundle up your Play application into a war,但我不确定它对你的情况有多大好处。它没有在 WebLogic 上进行测试。另外,这是更根本的问题:如果我没记错的话,WebLogic 10.3 only supports servlet specification 2.5,而 Websockets are only available starting with servlet 3.1。因此,无论 Play 是什么,您的计划都行不通。
编辑:
关于您的编辑:这里似乎仍然存在误解。 Play 不是一个 Java EE 框架。它确实不使用servlet。它确实不将其应用程序打包为战争,并且它确实不需要应用程序服务器进行部署。 Play 自带基于Netty 的网络服务器。这个内置的网络服务器支持 Websockets 和所有 Plays 功能。
我检查了play2-war-plugin 的来源,它看起来像Servlet 3.1 is not (yet) supported。 Same goes for Websockets.
总结一下:不,目前,不可能编写使用 Websockets 的 Play 2 应用程序并将其部署到 servlet 3.1 容器。
【讨论】:
所以如果我有义务使用 weblogic 我最好不要玩吗?我是否有更好的 java web 框架选项来满足我的需求? 没有。我想告诉你的是,WebLogic 10.3 根本不 支持 Websockets。他们只是introduced in the newest version, 12.1.2。这与 Play 无关。 所以如果我将 weblogic 更新到最新版本,我玩起来就没有问题了吗?【参考方案2】:在 play1.x 中,我们可以使用play war
将项目打包成一个战争,但是 Play 2.x 不允许这样做。您可以使用外部插件 https://github.com/dlecan/play2-war-plugin 将您的应用程序打包到来自 Play 框架 2 的标准 WAR 包中。
【讨论】:
这个解决方案的问题是我很确定以这种方式部署时不支持 Web 套接字......以上是关于在 weblogic 上部署 play 框架的主要内容,如果未能解决你的问题,请参考以下文章
从 Tomcat Web 应用程序调用的 Weblogic 上部署的远程 Ejb bean