9

Akka、Spray、Jettyを含むスタンドアロンJARを作成しようとしています。理想的には、外部ファイルを一切使用せずに、アプリケーション全体をその単一のファイルで配布します。

組み込みのJettyサーバーインスタンスを作成する方法を理解しています

def main(args: Array[String]): Unit = {
    val server = new Server(9012);
    server.start();
    server.join();
    Thread.sleep(2000);
    server.stop();
}

また、HelloServiceクラスとBootクラスを作成する際にSprayのサンプルコードに従いましたが、2つを接続する方法がわかりません。そのため、JettyサーバーでURLが要求されると、Sprayサービスがそれに応答します。どんな助けでも大歓迎です。

更新: Alois Cochardによって促された一連の問い合わせのおかげで、この問題の解決にかなり近づいています(私は、Webスクリプトのバックグラウンドから来ており、Java Webサービスに頭を悩ませています...挑戦的です! )。サーバーを起動し、入門テンプレートにあるJettyおよびakka構成ファイルを読み取るようにmainメソッドを変更しました。これらのファイルの両方を読み取っていますが、Jettyサーバーで/に移動すると、次のようになります。

HTTPエラー:500

/へのアクセスに問題があります。理由:

アサーションに失敗しました:ID'spray-root-service'のアクターが0個見つかりました、正確に1個が必要です

私は何かばかげたものが欠けていることを知っています(そしておそらくSBTを分解して使用する必要がありますが、Eclipseでコンパイルして実行し、ブラウザーで更新できるのはとてもシンプルで魅力的です)。

アップデート#2:問題を解明しました。私はWebAppContextオブジェクトを作成していませんでした。つまり、web.xmlが読み取られなかったため、Akkaが読み込まれていませんでした。これは、現在機能している改訂されたメインメソッドです。

4

1 に答える 1

5

スプレーテンプレートに従って、web.xml構成ファイルにスプレーサーブレットコネクタを追加する必要があります。

http://github.com/spray/spray-template/blob/master/src/main/webapp/WEB-INF/web.xml

このファイルを使用するようにスタンドアロンの桟橋を構成する方法に関するいくつかの情報をここで見つけることができます(nettyのドキュメントに直接より良いリファレンスが確かにあります):

http://exist.sourceforge.net/deployment.html#d47e594

ところで、プロジェクトのベースとしてスプレーテンプレートを使用することは良い考えのように見えます;)

于 2011-08-17T11:14:36.410 に答える