2012-02-22 20 views
1

Play documentationによれば、PlayアプリケーションをwarファイルにパックしてWebsphereにデプロイすることはできますが、問題があります。PlayAppをWebsphere 7にデプロイする方法

play warコマンドは、正しく動作している--zipオプションで使用しています。生成されたwarファイルのレイアウトは適切です(WEB-INFはトップレベルにあり、jarファイルはWEB-INF/libに移動しています)。

私のWebsphereサーバーにwarファイルをデプロイした後、私はアプリケーションのクラスの読み込み順序をparentに変更して、playのバージョンの競合するlibを使用するようにします。そして、私は、アプリケーション、ページ、任意のページをロードしようとすると、エラーが発生します。

デモアプリケーションと新しい空のアプリケーションを同じ方法でデプロイしようとしましたが、もう一度、空のページ(Not found Get /)が表示されます。ログの唯一のものはWARN ~ 404 -> GET/(GET /)です。

私はPlay 1.2.3、1.2.4、Websphere 7.0.0.0、および7.0.0.19で試してみました。また、Websphereでさまざまなデプロイメントオプションを切り替えようとしましたが、デフォルトオプションは動作するように見えます。

Websphereで動作するPlayアプリを入手した人はいますか?もしそうなら、どうですか?

答えて

2

に遭遇しています。将来他の誰かがWebSphere上にPlayアプリケーションをデプロイする同様の問題に遭遇した場合の手順を文書化します。

1 - 最初の問題は404でした.Websphereはルート(/)の処理要求(wtf?)を渡さないので、ルートファイルに同様のルートを定義するという修正があります。

GET /* Application.index 

代わりに(または上)

GET / Application.index 

2 - 次の問題は存在しない永続性(JPA)の方法に関連するエラーでした。 PlayはJPA 2.0を使用し、WebSphere 7はOpenJPA 1.0の独自のカスタム・バージョンを使用します。 a feature pack for JPA 2 and OSGIをインストールすることができます(OSGIの部分は不要なので、無視することができます)。フィーチャー・パックでは、WebSphere 7.0.0.9以降がインストールされている必要があります。これは、アプリケーションサーバーとバンドルされたJDKの両方に対応するフィックスパックを意味します。 I. JPAフィーチャー・パックをインストールする前に、サーバーとJDKの両方のフィックスパック21(最新の時刻または書面)を最初にインストールする必要があります。フィーチャーパックのインストールの最後に、プロファイルツールを実行するかどうかを尋ねるメッセージが表示されます。イエスと言う。このツールはあなたのプロフィール(戦争をインストールしようとしているサーバーノード)を "強化"させます。増やす!

3 - のWebSphereで動作しますwarファイルをビルドします。

play war <appFolder> -o <outputFolder> --zip --%prod 

このアプリのIDが設定された<outputFolder>(爆発戦争を)という名前のフォルダと<outputFolder>の.warという名前の.warファイルを作成します訴える。爆発した戦争は削除することができます。

このコマンドをlinuxで実行すると、私のWEB-INFフォルダは名前のないフォルダ(つまり、warファイルのルートレベルから下にあるレベル)に置かれます。つまり、/ WEB-INF /の代わりに、// WEB-INF /のような構造体を作成しています。とにかく、私はそれを適切に再圧縮することによって、現在手動​​で修正しています。誰もこの問題を回避する方法を知っていますか?

4 - 管理コンソールにすべてのデフォルト設定を適用してwarファイルをWebSphereにインストールするか、実行していることが分かっている場合は変更してください。

5 - この手順が必要な場合(私の特定のアプリケーションでは何も変わらない)、私は完全にはわかりませんが、PlayアプリをWebSphereで稼働させる方法についてオンラインで読んだアドバイスは、 。 Meh、それは傷つけることはできません。インストールされているアプリをクリックします。 「クラスの読み込みと更新の検出」リンクをクリックします。次に、「ローカルクラスローダーでロードされたクラス(親の最後)」オプションを選択します。 OK。セーブ。

6 - あなたのアドレスにブラウザのページを開きます(websphereをローカルで実行している場合はlocalhost:9080)。この時点でうまくいくはずです!うまくいけば。がんばろう。

0

サーブレットコンテナに展開する際の一般的な問題は、ROOT WARファイルとしてアプリケーションをデプロイする場合を除いて、問題が発生することがよくあります。アプリケーションへのパスが/として利用できるように、WARファイルがデプロイされていることを確認してください。

このスレッドは、共通の問題は、私は最終的にそれが働いている

how to use "war.context" in Configuration file of Play Framework ?

+0

私が使用しているコンテキストはデフォルト/ 1です。私のweb.xmlおよびWebsphere管理コンソールのオーバーライドには、/がコンテキストルートとして/にあります。 – DaveS

関連する問題