2014-10-11 166 views
3

我正在将我的grails应用程序从版本2.1.1升级到2.4.3,但我得到了错误如下信息:将Grails从2.1.1升级到2.4.3时出错:java.lang.NoClassDefFoundError:org/springframework/aop/framework/AopInfrastructureBean

| Compiling 405 source files. 
| Error Compilation error: startup failed: 
General error during conversion: java.lang.NoClassDefFoundError: org/springframework/aop/framework/AopInfrastructureBean 

java.lang.RuntimeException: java.lang.NoClassDefFoundError: org/springframework/aop/framework/AopInfrastructureBean 
    at org.codehaus.groovy.control.CompilationUnit.convertUncaughtExceptionToCompilationError(CompilationUnit.java:1083) 
    at org.codehaus.groovy.control.CompilationUnit.applyToPrimaryClassNodes(CompilationUnit.java:1061) 
    at org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:583) 
    at org.codehaus.groovy.control.CompilationUnit.processPhaseOperations(CompilationUnit.java:561) 
    at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:538) 
    at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:517) 
    at org.codehaus.groovy.tools.FileSystemCompiler.compile(FileSystemCompiler.java:59) 
    at org.codehaus.groovy.tools.FileSystemCompiler.doCompilation(FileSystemCompiler.java:215) 
    at org.codehaus.groovy.ant.Groovyc.runCompiler(Groovyc.java:1161) 
    at org.codehaus.groovy.ant.Groovyc.compile(Groovyc.java:1212) 
    at org.codehaus.groovy.grails.compiler.Grailsc.compile(Grailsc.java:78) 
    at org.codehaus.groovy.ant.Groovyc.execute(Groovyc.java:827) 
    at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291) 
    at sun.reflect.GeneratedMethodAccessor43.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:483) 
    at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) 
    at groovy.util.AntBuilder.performTask(AntBuilder.java:319) 
    at groovy.util.AntBuilder.nodeCompleted(AntBuilder.java:264) 
    at groovy.util.BuilderSupport.doInvokeMethod(BuilderSupport.java:147) 
    at groovy.util.AntBuilder.doInvokeMethod(AntBuilder.java:203) 
    at groovy.util.BuilderSupport.invokeMethod(BuilderSupport.java:64) 
    at org.codehaus.gant.GantBuilder.invokeMethod(GantBuilder.java:99) 
    at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:45) 
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:120) 
... 
... 
... 
... 
... 
org.codehaus.groovy.tools.javac.JavaAwareCompilationUnit$1.call(JavaAwareCompilationUnit.java:67) 
    at org.codehaus.groovy.control.CompilationUnit.applyToPrimaryClassNodes(CompilationUnit.java:1047) 
    ... 565 more 
Caused by: java.lang.ClassNotFoundException: org.springframework.aop.framework.AopInfrastructureBean 
    at org.codehaus.groovy.tools.RootLoader.findClass(RootLoader.java:175) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
    at org.codehaus.groovy.tools.RootLoader.loadClass(RootLoader.java:147) 
    at org.codehaus.groovy.grails.cli.support.GrailsRootLoader.loadClass(GrailsRootLoader.java:51) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
    ... 589 more 

1 error 

生成配置文件:

grails.servlet.version = "2.5" 
grails.project.class.dir = "target/classes" 
grails.project.test.class.dir = "target/test-classes" 
grails.project.test.reports.dir = "target/test-reports" 
grails.project.target.level = 1.6 
grails.project.source.level = 1.6 
//grails.project.war.file = "target/${appName}-${appVersion}.war" 
grails.project.dependency.resolution = { 
    // inherit Grails' default dependencies 
    inherits("global") { 
     // uncomment to disable ehcache 
     // excludes 'ehcache' 
    } 
    log "warn" // log level of Ivy resolver, either 'error', 'warn', 'info', 'debug' or 'verbose' 
    repositories { 
     inherits true 

     grailsPlugins() 
     grailsHome() 
     grailsCentral() 

     // uncomment the below to enable remote dependency resolution 
     // from public Maven repositories 
     mavenLocal() 
     mavenCentral() 
     //mavenRepo "http://snapshots.repository.codehaus.org" 
     //mavenRepo "http://repository.codehaus.org" 
     mavenRepo "http://download.java.net/maven/2/" 
     //mavenRepo "http://repository.jboss.com/maven2/" 
     mavenRepo "http://repository.springsource.com/maven/bundles/release" 
     mavenRepo "http://repository.springsource.com/maven/bundles/external" 
    } 
    dependencies { 
     // specify dependencies here under either 'build', 'compile', 'runtime', 'test' or 'provided' scopes eg. 

     runtime 'mysql:mysql-connector-java:5.1.20' 
     compile "javax.mail:mail:1.4.3" 
     runtime "org.springframework:spring-test:4.0.6.RELEASE" 
    } 

    plugins { 
     runtime ":hibernate4:4.3.5.5" // or ":hibernate:3.6.10.17" 
     runtime ":jquery:1.8.0" 
     runtime ":resources:1.1.6" 
     build ":tomcat:7.0.55" 
     runtime ":database-migration:1.4.0" 
     compile ":cache:1.1.8" 
     compile ":mail:1.0.7" 
     compile ":spring-security-core:2.0-RC4" 
     compile ":searchable:0.6.9" 
     compile ":yui:2.8.2.1" 
    } 
} 

我几乎更新大多数的插件到最新版本,如:spring-security-core:2.0-RC4

我还发现,在Grails的官方JIRA的问题,这说明了同样的问题作为排雷: https://jira.grails.org/browse/GPSPRINGSECURITYUI-62

我不知道,如果它仍然将尚未解决的错误吗?

回答

2

由于您的BuidConfig.groovy不包含grails.project.dependency.resolver ='maven'我认为Grails会回退到古老的'ivy'。 我有AME问题,必须手动提供以解决此问题的2依赖性:https://jira.grails.org/browse/GRAILS-11184

编译“org.springframework:弹簧AOP:3.2.9.RELEASE” 编译“org.springframework:春天 - 表达式:3.2.9.RELEASE'

0

对我来说,从Grails 2.2.4升级到Grails 2.4.2创建了类似的错误信息。

我的解决办法是添加到BuildConfig.groovy,下面的 “依存关系” 部分:

dependencies { 
    runtime 'org.springframework:spring-aop:4.0.5.RELEASE' 
    runtime 'org.springframework:spring-expression:4.0.5.RELEASE' 
} 
相关问题