2011-08-06 9 views
3

Play frameworkはサーブレット仕様をサポートしていませんが、それでもdeployment optionsの中には、アプリケーション全体をWARファイルにパッケージ化してサーブレットコンテナにデプロイする可能性があります。誰かが遊びのときに何が起こるか説明できますか!アプリはwarファイルとしてデプロイされていますか?

バージョン1.1から、再生はnettyを統合Webサーバーとして使用します。

私は、プレイアプリケーションがwarファイルにデプロイされているときに何が起こるのだろうと思っていました。

サーブレットコンテナ内でNettyを引き続き使用していますか? パフォーマンスに著しいコストはありますか? サーブレット・コンテナにアクセスするだけですか?

答えて

6

Nielsによれば、Playは他のプラットフォームへの展開にNettyを使用しません。

play runまたはplay startコマンドを使用してPlayを実行する場合は、Nettyを使用して要求を管理し、Playフレームワークに渡します。

ただし、別のアプリケーションサーバーに展開する場合は、これは不可能です。したがって、PlayはServletWrapperを中心にHTTP処理をラップします。これは、通常の再生方法を効果的に変換し、サーブレット仕様に準拠するJ2EEスタックで使用できるようにします。

このラッパーの特定のコードはfound hereです。 WARファイルをビルドするときには、このServletWrapperを公開されたサーブレットとして効果的に配置し(StrutsはActionServletと同じように)、リクエストを適切な場所にルーティングするために必要な作業を処理します。ページがプレイ1.2では、

を示唆

+0

いつものように、素晴らしい答え、ウェイン... – opensas

0

私が知っている限り、それはネットを使用していません。それには特別なサーブレットがあり、これは演劇クラスに作品を委譲します。グラスフィッシュだけがネイティブプレイコンテナを持っています。 明らかにパフォーマンスに悪影響があります。

0

thisとして、あなたはplay war myapp -o myapp.warコマンドで.warファイルを取得し、そのページに記載されているのJava EEサーバの1つに展開することができます。

関連する問題