PlayアプリをWebSphere 7に展開する方法
-
28-10-2019 - |
質問
による ドキュメントを再生します, 、戦争ファイルに再生アプリを詰めてWebSphereに展開することができますが、問題があります。
私は使用しています play war
でコマンド --zip
適切に機能しているオプション。結果のWARファイルには正しいレイアウトがあります(上位レベルのWeb-INF、JARSがWeb-INF/LIBに移動します)。
WebSphereサーバーにWARファイルを展開した後、アプリのクラスロード順序を最後に親に変更して、競合するLIBのPlayのバージョンを使用するようにします。そして、アプリのページ、任意のページをロードしてエラーを取得しようとします。
デモアプリと新しい空のアプリを同じように展開しようとしましたが、繰り返しますが、言うだけのページが表示されます。 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で動作するプレイアプリを手に入れた人はいますか?もしそうなら、どうですか?
解決
私はついにそれを機能させました。将来、WebSphereでPlayアプリを展開する同様の問題に他の誰かが登場した場合に備えて、私の手順を文書化します。
1-最初の問題は404でした。WebSphereは、ルート(/)のリクエストをアプリに処理する(WTF?)に渡さないため、ROUTESファイルの同様のルートを定義することです。
GET /* Application.index
の代わりに(またはその上)
GET / Application.index
2-次の問題は、存在しない永続性(JPA)メソッドに関連するエラーでした。 PlayはJPA 2.0を使用しますが、WebSphere 7はOpenJPA 1.0の独自のカスタムバージョンを使用しています。インストールできます JPA 2とOSGIの機能パック (OSGI部品は必要ないので、無視できます)。機能パックでは、WebSphere 7.0.0.9以降がインストールされていることが必要であることに注意してください。つまり、アプリサーバーとバンドルされたJDKの両方の修正パックを一致させることを意味します。 IE Fix Pack 21(当時の最新かまたは書き込み)サーバーとJDKの両方のJPA機能パックをインストールする前に、最初にインストールする必要があります。機能パックのインストールの最後に、プロファイルツールを実行するかどうかを尋ねます。イエスと言う。このツールでは、プロファイル(戦争をインストールするサーバーノード)を「補強」することができます。拡大してください!
3- WebSphereで機能する戦争ファイルを構築します。
play war <appFolder> -o <outputFolder> --zip --%prod
これにより、名前のフォルダーが作成されます <outputFolder>
(爆発した戦争)と名前付きの.warファイル <outputFolder>
.war、アプリIDがprodに設定されています。爆発した戦争は削除できます。
Linuxでこのコマンドを実行すると、Web-INFフォルダーを無名フォルダー内に配置し続けます(したがって、戦争ファイルのルートレベルからレベルを下げます)。言い換えれば、/web-inf/の代わりに、// web-inf/のような構造を作成しています。とにかく、私はそれを適切に再zippedすることで、今のところ手動でそれを修正しています。誰かがこの問題を回避する方法を知っていますか?
4-管理コンソールのすべてのデフォルト設定を使用してWebSphereに戦争ファイルをインストールするか、自分が何をしているのか知っている場合はそれらを調整します。
5-このステップが必要かどうかは完全にはわかりません(特定のアプリには何も変更されません)が、WebSphereで実行されるアプリを取得することについてオンラインで読んだアドバイスはすべてこれを行うように言います。まあ、それは傷つくことはできません。インストールされているアプリをクリックします。 「クラスの読み込みと更新検出」リンクをクリックします。次に、「ローカルクラスローダーでロードされたクラス(親)」オプションを選択します。 Ok。保存。
6-アドレスにブラウザページを開きます(localhost:9080ローカルでWebSphereを実行している場合)、テスト。この時点で、それは機能するはずです!うまくいけば。幸運を。
他のヒント
サーブレットコンテナへの展開の一般的な問題は、アプリケーションをルートウォーファイルとして展開しない限り、頻繁に問題に遭遇することです。あなたの戦争ファイルが展開されていることを確認して、アプリケーションへのパスが次のように利用可能になりますか /
.
このスレッドは、遭遇する一般的な問題です