I tried a simple spray example app and i cannot access the route, I uploaded the example source code which does not work to 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/
I get
"The requested resource could not be found."
I defined the route as following:
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>
}
}
}
}
}
and ofcourse I have the boot
class in place
in application.conf
spray.servlet {
boot-class = "com.example.SprayBoot"
request-timeout = 10s
}
and SprayBoot
itself:
class SprayBoot extends WebBoot {
val system = ActorSystem("actorsystem")
val serviceActor = system.actorOf(Props[ServiceActor])
}
I'm pretty sure I followed all requirements am i missing something? how can I update it to actually serve the content instead of "The requested resource could not be found."
The example will work when you deploy app into ROOT context without any extra configuration.
I've changed your script a bit:
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/