4

Play アプリを作成し、次のコマンドを使用して weblogic にデプロイしようとしました。

play war -o myApp myApp

後で、展開された war ディレクトリを weblogic にデプロイしました。すべて正常に機能しましたが、ルートにアクセスしようとするたびに。次のエラーが表示されます。

Not found

GET /myApp/params

これは、UI を備えたアプリケーションではなく、残りのサービスです。Tomcat にデプロイしようとしましたが、すべてうまくいきましたが、アプリケーション コンテキスト ルートを / にする必要がありました。weblogicで同じことを試みましたが、うまくいきませんでした。

ここに私のルートファイルがあります:

GET     /                                        Application.index

GET  /sectorinformer/{telephone}  Application.show

GET     /sectorinformer/public/                     staticDir:public

*       /{controller}/{action}                  {controller}.{action}

そして、ここに私のコントローラコードがあります:

package controllers;

import models.InstalAddress;
import models.SectorInfo;
import play.Logger;
import play.mvc.Controller;

public class Application extends Controller {

    public static void index() {
       render();
}

public static void show(String telephone) {
    Logger.debug("Starting request");
    Logger.debug("domain: '%s'", request.domain);
    String instalAddressId = InstalAddress.getInstalAddressId(telephone);
    SectorInfo si = new SectorInfo();
    si.initializeSectorInfo(instalAddressId);
    renderXml(si.generateXmlResponse());
}

}

助けてくれてありがとう。

4

4 に答える 4

9

Weblogic 10 は、完全に準拠した J2EE 5 アプリケーション サーバーであるため、JPA 1.0 にバンドルされています。

Play を weblogic で実行するには、2 つの小さな問題があります。

  1. Oracle パッチを適用して weblogic が JPA 2.0 をサポートするようにする
  2. web-inf からのクラス解決を優先するデプロイメント記述子プロパティの追加

どちらも些細なことであり、Play のドキュメントはおそらく weblogic 10 を有効なデプロイメント ターゲットとしてマークする必要があります。

#1を修正するには、次のオラクル リンクを開きます。

怠惰な読者のために、この宣言をwlserver/common/bin/commEnv.shの先頭に追加してください

export PRE_CLASSPATH=$MW_HOME/modules/javax.persistence_1.0.0.0_2-0-0.jar:$MW_HOME/modules/com.oracle.jpa2support_1.0.0.0_2-0.jar

Windows の場合、ファイルはwlserver/common/bin/commEnv.bat です。

set PRE_CLASSPATH=%MW_HOME%/modules/javax.persistence_1.0.0.0_2-0-0.jar;%MW_HOME%/modules/com.oracle.jpa2support_1.0.0.0_2-0.jar

#2を修正するには、次の場所にファイル weblogic.xml を作成しますmyplayapp/war/WEB-INF/weblogic.xml

<?xml version="1.0" encoding="UTF-8"?>
<weblogic-web-app>
    <container-descriptor>
            <prefer-web-inf-classes>true</prefer-web-inf-classes>
    </container-descriptor>
</weblogic-web-app>

war フォルダーは、web アーカイブがビルドされるときにplay warによって自動的に取得されます。

それでおしまい!

個人的には、Play が weblogic.xml 自体を作成する必要があると考えていますが、1.2.1 の時点ではそうではありません。

于 2011-05-04T03:22:28.363 に答える
0

Play アプリ (play 1.1.1) を Websphere 6.1 にデプロイしたところ、いくつかの問題が発生しました。同じ問題があるかどうかはわかりませんが、ここにあります(お役に立てば幸いです):

1- JDK バージョン: 私の「play war xxxx --zip」は JDK 1.6 を使用し、Websphere 6.1 は JDK 1.5 を使用します。Web アプリケーションを起動しようとすると、UnsupportedClassVersionException がスローされました。正しい JDK を使用して war ファイルを再生成しました。

2- war アプリケーションを Websphere にデプロイするときに、コンテキストの名前を指定できます。Weblogicでのやり方がわかりませんが、正しい値を設定しましたか?

Niels が言ったように、ログ ファイルを分析してください。

于 2011-04-04T13:03:09.407 に答える
0

残念ながら、あなたの興味深い問題を調査する weblogic の知識も時間もありません。私が何をするかについて、いくつかのヒントを与えることしかできません。

アプリをデバッガーに接続してみてください。これがうまくいかない場合は、コードをチェックアウトして、多くのログ ステートメントを使用して独自のバージョンをビルドしてください。私の知る限り、すべてのリクエストは ActionInvoker によって処理されます。呼び出す。引数がどのように入力されるかを見てください。もう 1 つのポイントは、まだ多くのトレース ログがあるルーターです。したがって、おそらく最初に開始して、すべてのものをトレースレベルで実行させます。おそらくそれは、より詳細に調べるためのヒントを提供します。

これを行うには、クリーンなアプリから始めて、構成のトリックを行わず、特に ROOT-Context で実行しないでください。作成play war myapp -o myapp.war --zipして展開するだけです (--zip を忘れないでください)。次に、ログを分析します。

よく見る。

ニールス

于 2010-10-28T17:30:26.693 に答える
-2

残念ながら、プレイ!Weblogic をサポートしていません。
参照: http://www.playframework.org/documentation/1.2/deployment

于 2011-04-27T15:04:00.100 に答える