2009-09-26 7 views
4

J'essaye de construire une servlet de base avec scala, mais je n'arrive pas à comprendre comment la faire tourner sous Tomcat. Je pense que ma classe de scala est correcte, et j'ai inclus toutes les libs dans scala-2.6.x-final-blah.tgz dans mon répertoire lib de tomcat, mais j'ai toujours l'erreur générique étrange ci-dessous.Comment faire fonctionner Scala en tant que servlet sous Tomcat?

Quelqu'un peut-il me dire ce qui se passe?

javax.servlet.ServletException: Error allocating a servlet instance 
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286) 
    org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845) 
    org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) 
    org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) 
    java.lang.Thread.run(Thread.java:636) 


root cause 
java.lang.NoClassDefFoundError: scala/ScalaObject 
+0

Où avez-vous trouvé l'instruction d'inclure "toutes les bibliothèques dans scala-2.6.x-final-blah.tgz" dans le répertoire lib de tomcat? C'est le seul endroit où j'ai remarqué cela, et c'était exactement ce que je devais faire. (Pour les utilisateurs non-Unix, vous pouvez obtenir des bibliothèques pour d'autres plates-formes depuis http://www.scala-lang.org/downloads). – SmileAndNod

Répondre

4

Certains sleuthing a révélé que le vrai répertoire tomcat lib est dans/usr/share, pas/var/lib. J'ai ajouté la bibliothèque à/usr/share et je l'ai symétrisée vers/var/lib, et maintenant tout fonctionne! En outre, la seule bibliothèque de scala requise pour s'exécuter sous tomcat est scala-library.jar, l'exécution de scala.

Questions connexes