need your help - Error configuring application listener of class spray.servlet.Initializer

135 views
Skip to first unread message

Avi Levi

unread,
Mar 19, 2015, 6:00:03 AM3/19/15
to spray...@googlegroups.com
Hi ,
I am using scala 2.11 , spray, using maven deploy tomcat 7
after deploying my WAR om tomcat , looking at logs show the following error event when I used this example taken from spray  :


INFO: No Spring WebApplicationInitializer types detected on classpath
Mar 19, 2015 11:41:33 AM org.apache.catalina.core.StandardContext listenerStart
SEVERE: Error configuring application listener of class spray.servlet.Initializer
java.lang.ClassNotFoundException: spray.servlet.Initializer
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1718)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1569)
at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:529)
{...}
Mar 19, 2015 11:41:33 AM org.apache.catalina.core.StandardContext listenerStart
SEVERE: Skipped installing application listeners due to previous error(s)




this is my application.conf
akka {
loglevel = INFO
event-handlers = ["akka.event.slf4j.Slf4jEventHandler"]
}

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


class SprayBoot extends WebBoot {

// we need an ActorSystem to host our application in
val system = ActorSystem("systemactor")

// the service actor replies to incoming HttpRequests
val serviceActor = system.actorOf(Props[DemoService])

system.registerOnTermination {
// put additional cleanup code here
system.log.info("Application shut down")
}

}
my pom and web.xml attached 
any assistance will greatly appreciated 

Thanks
Avi





Foo.xml
web.xml

Johannes Rudolph

unread,
Mar 19, 2015, 6:16:22 AM3/19/15
to spray...@googlegroups.com
Hi Avi,

why did you put spray-servlet into the provided scope in your pom?

Johannes
> --
> You received this message because you are subscribed to the Google Groups
> "spray.io User List" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to spray-user+...@googlegroups.com.
> Visit this group at http://groups.google.com/group/spray-user.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/spray-user/2d26e780-d402-45b1-9f0d-efbbf02c2858%40googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.



--
Johannes

-----------------------------------------------
Johannes Rudolph
http://virtual-void.net

Avi Levi

unread,
Mar 19, 2015, 7:45:21 AM3/19/15
to spray...@googlegroups.com
Hi Johannes ,
Thank you for your quick response .
I had a "Servlet-Api-2.5.Jar – Jar Not Loaded" problem. as describe here adding that dependency solved that issue .
Avi

Johannes Rudolph

unread,
Mar 19, 2015, 7:51:54 AM3/19/15
to spray...@googlegroups.com
On Thu, Mar 19, 2015 at 12:45 PM, Avi Levi <123...@gmail.com> wrote:
> Hi Johannes ,
> Thank you for your quick response .
> I had a "Servlet-Api-2.5.Jar – Jar Not Loaded" problem. as describe here
> adding that dependency solved that issue .
> Avi

I was talking about spray-servlet not servlet-api. You have this in your pom:

<dependency>
<groupId>io.spray</groupId>
<artifactId>spray-servlet_${scalaBinaryVersion}</artifactId>
<version>${spray.version}</version>
<scope>provided</scope>
</dependency>

Can you try without <scope>provided</scope>?

Johannes

Avi Levi

unread,
Mar 19, 2015, 8:01:28 AM3/19/15
to spray...@googlegroups.com
I removed it
<dependency>
<groupId>io.spray</groupId>
<artifactId>spray-servlet_${scalaBinaryVersion}</artifactId>
<version>${spray.version}</version>
</dependency>
Still issue with Initializer but different error :

INFO: Starting spray application ... 
Mar 19, 2015 1:55:33 PM org.apache.catalina.core.StandardContext listenerStart 
SEVERE: Exception sending context initialized event to listener instance of class spray.servlet.Initializer 
java.lang.NoClassDefFoundError: scala/collection/GenTraversableOnce$class 
 at spray.http.Uri$Query.<init>(Uri.scala:496) 
 at spray.http.Uri$Query$Empty$.<init>(Uri.scala:575) 
 at spray.http.Uri$Query$Empty$.<clinit>(Uri.scala) 
 at spray.http.parser.UriParser.<init>(UriParser.scala:37) 
 at spray.http.Uri$.apply(Uri.scala:231) at spray.http.Uri$.apply(Uri.scala:203) 
 at spray.http.Uri$.<init>(Uri.scala:194) at spray.http.Uri$.<clinit>(Uri.scala) 
 at spray.http.Uri$Path$.build$1(Uri.scala:427) at spray.http.Uri$Path$.apply(Uri.scala:428) 
 at spray.servlet.ConnectorSettings$.fromSubConfig(ConnectorSettings.scala:52) 
 at spray.servlet.ConnectorSettings$.fromSubConfig(ConnectorSettings.scala:46) 
 at spray.util.SettingsCompanion.apply(SettingsCompanion.scala:50) 
 at spray.servlet.Initializer$anonfun$contextInitialized$1.apply$mcV$sp(Initializer.scala:40) 
 at akka.util.Switch.transcend(LockUtil.scala:27) at akka.util.Switch.switchOn(LockUtil.scala:48) 
 at spray.servlet.Initializer.contextInitialized(Initializer.scala:33) 
 at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4973) 
 at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5467) 
 at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
 at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901) 
 at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877) 
 at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:632) 
 at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:1073) 
 at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1857) 
 at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) 
 at java.util.concurrent.FutureTask.run(FutureTask.java:262) 
 at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
 at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
 at java.lang.Thread.run(Thread.java:745) Caused by: java.lang.ClassNotFoundException: scala.collection.GenTraversableOnce$class 
 at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1718) 
 at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1569) 
 ... 30 more


Avi

Avi Levi

unread,
Mar 19, 2015, 10:18:14 AM3/19/15
to spray...@googlegroups.com
Solved !
it seems to be some kind of race condition. 
I added lazy initialization  on my service actor at the SprayBoot class 
lazy val serviceActor = system.actorOf(Props[DemoService])

and it seems to be ok .

please let me know your thoughts 
Avi

Avi Levi

unread,
Mar 20, 2015, 3:38:32 AM3/20/15
to spray...@googlegroups.com
Hi Johannes ,
did you saw the solution by add laziness to service actor ? lazy val serviceActor = system.actorOf(Props[DemoService]) 
is that an issue with spray web boot serviceActor ? should it be defined by lazy def ?

Best
Avi
Reply all
Reply to author
Forward
0 new messages