2009-09-26 19 views
4

我想用scala構建一個基本的servlet,但我似乎無法弄清楚如何讓它在tomcat下運行。我認爲我的Scala類沒問題,並且我把所有的庫放在了scala-2.6.x-final-blah.tgz到我的tomcat lib目錄下,但是我仍然在下面看到奇怪的通用錯誤。如何讓Scala在Tomcat下作爲servlet運行?

誰能告訴我發生了什麼事?

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

你從哪裏找到了將「scala-2.6.x-final-blah.tgz中的所有庫」包含到tomcat lib目錄的指令?你的是我注意到的唯一的地方,這正是我需要做的。 (對於非Unix用戶,您可以從http://www.scala-lang.org/downloads獲取其他平臺的libs)。 – SmileAndNod 2012-11-21 04:16:39

回答

4

一些偵探透露,真正的Tomcat的lib目錄是在/ usr /股,而不是在/ var/lib中。我將該庫添加到/ usr/share並將其鏈接到/ var/lib,現在一切正常!另外,在tomcat下運行所需的唯一scala庫是scala-library.jar,即scala運行時。