以下の問題の文脈で、プレイ開始とプレイ実行の実行の違いを理解したいと思います。Playの実行と開始の違いは何ですか?
私の特定のユースケースはかなり複雑ですが、私はこのようにそれを簡素化します:起動時に
- (Global.scalaの一部として)、私のPlayアプリケーションは、エントリに直接メソッド呼び出しを行っていますJavaアプリケーションXのポイント。
- Xは初期化の一部として、Tomcatの埋め込みインスタンスを開始します。
- Xの初期化の終わりに、Tomcatが起動していることを確認し、要求に応答します。
ここで私がこのアプリケーションでplay start
を実行すると、Tomcatは起動していて、Xは満足していて、人生は続いています。
しかし、私がplay run
を実行すると、Tomcatは初期化に失敗し、Xは応答待ちの状態になり、最終的にタイムアウトします。
play run
を使用する主な理由は、開発用です。私はEclipseデバッガを添付してplay debug run
を実行しています。
私はこれが過度の簡略化であることを認識していますが、私があなたから得ることを望んでいるのは、アプリケーションの動作に違いを生む可能性があるPlayの実行とPlayの違いです。
ここでは、Playのデフォルトスレッドプールのスレッド数をhttp://www.playframework.com/documentation/2.1.x/ThreadPoolsに変更してみましたが、運が足りませんでした。
再生出力とログには、この問題に関する有用な情報がありません。
私がプレイ2.1.1
ありがとう@gourlaysama、これは参考になりました。私はsbt内で起こる魔法について深く掘り下げたいと思います。あなたはクラスローダーに言及しています。おそらく、これは問題の場所です。私はこれについてもっと詳しく知ることができるか知っていますか?私が言及したように、Tomcatのログは有用な詳細を提供していないようですが、何とかしなくても何も起こらないことを排除することはできません。 –
どこに書かれているのか分かりません(ソース自体の外で)...私は魔法が起こるところへのリンクを追加しました。編集を参照してください。 – gourlaysama