6

簡単なスプレー サンプル アプリを試してみましたが、ルートにアクセスできません。動作しないサンプル ソース コードを github にアップロードしました: Spray -tomcat-example :

 git clone https://github.com/avidanyum/spray-tomcat-example
 mvn package
 cp cp target/spray-tomcat-example-0.1-SNAPSHOT.war ~/tmp/tomcat/apache-tomcat-7.0.61/webapps/spraytomcat.war
 cd ~/tmp/tomcat/apache-tomcat-7.0.61/bin
 ./catalina.sh jpda run
 http://localhost:8080/spraytomcat/

私は得る

"The requested resource could not be found."

ルートを次のように定義しました。

class ServiceActor extends Actor with Service {

  def actorRefFactory = context
  def receive = runRoute(myRoute)
}

trait Service extends HttpService {
  import com.example.domain.Person

  val myRoute =
    path("") {
      get {
        respondWithMediaType(`text/html`) {
          complete {
            <html>
              <body>
                <h1>Say hello to <i>spray-routing</i> on <i>tomcat</i>!</h1>
              </body>
            </html>
          }
        }
      }
    }


}

そしてもちろん、私はbootクラスを用意しています

application.conf

spray.servlet {
  boot-class = "com.example.SprayBoot"
  request-timeout = 10s
}

そしてSprayBootそれ自体:

class SprayBoot extends WebBoot {

  val system = ActorSystem("actorsystem")
  val serviceActor = system.actorOf(Props[ServiceActor])

}

私はすべての要件に従っていると確信しています。「要求されたリソースが見つかりませんでした」ではなく、実際にコンテンツを提供するように更新するにはどうすればよいですか。

4

2 に答える 2

1

この例は、追加の構成なしでアプリを ROOT コンテキストにデプロイするときに機能します。

私はあなたのスクリプトを少し変更しました:

git clone https://github.com/avidanyum/spray-tomcat-example mvn package cp target/spray-tomcat-example-0.1-SNAPSHOT.war ~/tmp/tomcat/apache-tomcat-7.0.61/webapps/ROOT.war cd ~/tmp/tomcat/apache-tomcat-7.0.61/bin ./catalina.sh jpda run wget http://localhost:8080/

于 2015-04-19T19:30:25.997 に答える
0

@jrudolphが言ったように

問題は、スプレーがコンテキスト パスを削除していないことです。したがって、それを機能させるには、spray.servlet.root-path = "/spraytomcat" 設定を設定する必要があります。こちらをご覧ください

于 2015-04-20T07:14:53.990 に答える