2011-03-30 92 views
0

春天@Autowire當我這樣做:使用Scala 2.8

class XX { 
    @Autowired var jdbcTemplate : SimpleJdbcTemplate = null 
} 

代碼編譯罰款,但炸燬當我開始的Web應用程序。它給出:

SEVERE: StandardWrapper.Throwable 
java.lang.NoClassDefFoundError: scala/collection/immutable/List 
at java.lang.Class.getDeclaredConstructors0(Native Method) 
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2389) 
at java.lang.Class.getDeclaredConstructors(Class.java:1836) 
at  org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.determineCandidateConstructors(AutowiredAnnotationBeanPostProcessor.java:227) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.determineConstructorsFromBeanPostProcessors(AbstractAutowireCapableBeanFactory.java:930) 

我該如何解決這個問題?順便說一句,當我嘗試@Autowire構造函數時出現同樣的錯誤。

+0

隨着2.7.2編譯器的代碼工作,但在該版本中,我必須明確提供一個setter方法。 – Kevin 2011-03-30 17:29:16

+0

但注入與2.7.7編譯器一起工作... – Kevin 2011-03-30 17:39:39

回答

1

確保運行時環境中的Scala運行時庫版本與Scala編譯器版本匹配。目前看起來您的代碼是針對Scala 2.8.x API編譯的,但運行時環境使用Scala 2.7.x.

+0

我正在使用maven-scala-plugin並將scalaVersion設置爲2.8.1。我很確定maven負責這一部分。 – Kevin 2011-03-30 17:54:05

+0

我的不好...我更新了編譯器版本,但沒有maven依賴版本!你的評論迫使我看....謝謝! – Kevin 2011-03-30 18:03:52