2017-03-09 7 views
3

this linkで、残りのapiサーバーを作った。それは私がEclipse IDE上で実行するとうまく動作します。しかし、私はどのようにサーバーに展開するのか分かりません。私はwarファイルを作ってtomcatにデプロイしようとしましたが、Eclipseで実行していたのとは異なり、何らかの形で私が定義したページにアクセスできません。ここに私が作ったいくつかのgradle構成があります。スパークレストapiサーバー展開

apply plugin: 'war' 

war { 
    baseName = 'server' 
    manifest { 
     attributes 'Implementation-Title': 'SparkAPIServer', 'Implementation-Version': '1.0', 'Main-Class': 'com.server.Main' 
    } 
} 

「メインクラス」のパスが正しいと確信しています。これのアイデア?

答えて

4

Eclipse IDEからの実行は、Eclipse Sparkで実行するときに組み込みのJettyサーバーを使用し、TomcatサーバーにTomcat Sparkを展開すると実行されるため、Tomcatで実行する場合と同じではありません。

documentationから引用:

他のWebサーバ

ウェブサーバ(代わりの埋め込み桟橋サーバ)、 インターフェースspark.servletの実装にスパークを実行します。 SparkApplicationは が必要です。あなたは、init()メソッドでルートを初期化する必要があり、かつ 次のフィルタは、あなたのweb.xmlに設定する必要があります...

だから、後に同じコードを実行するために、 Tomcatにデプロイする場合、次のようにする必要があります。

  1. クラスでSparkApplicationを実装する必要があります。
  2. init()メソッドを実装し、そこですべてのルートを登録します。 (もちろん、Eclipse上でローカルにもTomcatでもリモートでも実行できるようにするには、すべてのルートをinit()とmain()から呼び出されるprivateメソッドstartSpark()に登録するだけです。
  3. web.xmlはそれに応じて設定する必要があります。
1

(必要に応じて適応させる)、以下のように、あなたがウェブサーバを起動するためにスパークし、メインメソッドを使用することを、あなたはjarファイルを作成するために、実際に見ている見て:

jar { 
    manifest { 
    attributes 'Main-Class': 'com.foo.bar.MainClass' 
    } 
} 

jar taskマニュアルを参照してください。また、マニフェストに外部ライブラリのクラスパスを追加することを忘れないでください。

関連する問題