2011-03-30 61 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