2013-07-17 107 views
2

如何将play 2.1 web应用程序部署到oracle weblogic 10.3?在weblogic上部署play framework

Weblogic正在windows server 2008 r2上运行。

我的应用程序有网络套接字,我强调他们在部署时存在问题。

编辑:

我明白这个servlet 3.0不支持网络套接字。如果是这样,Play在自己的服务器上运行什么?

+0

伟大的问题!我有同样的问题... – Nayish

回答

1

在play1.x中,我们可以使用play war打包该项目,但Play 2.x不允许这样做。您可以使用外部插件https://github.com/dlecan/play2-war-plugin将您的应用程序打包到Play框架2的标准WAR包中。

+1

这个解决方案的问题是,我非常确定的网络套接字不支持部署这种方式... – Nayish

6

游戏不是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框架。它确实不是使用servlets。它不是而是将其应用程序打包为战争,并且它的确不是而是需要应用程序服务器进行部署。 Play带有自己的网络服务器,它基于Netty。这个内置的网络服务器支持Websockets和所有的Plays功能。

我检查了play2-war-plugin的来源,它看起来像Servlet 3.1 is not (yet) supportedSame goes for Websockets

总结:不,现在是而不是可能编写使用Websockets并将其部署到servlet 3.1容器的Play 2应用程序。

+0

所以,如果我有义务使用weblogic我最好不使用播放?我有更好的Java Web框架选项,我在找什么? –

+0

不,我试图告诉你的是,WebLogic 10.3 *根本不支持Websocket。它们只是[在最新版本中引入的,12.1.2](http://docs.oracle.com/middleware/1212/wls/NOTES/index.html#CJABIGIC)。这与Play无关。 – Carsten

+0

所以,如果我更新weblogic到最新版本,我会玩没问题? –