2013-07-17 44 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到最新版本,我會玩沒問題? –