2015-04-01 96 views
0

我有一个在一个环境中运行正常的Grails 2.4.2应用程序。现在,我们需要在另一个环境中进行设置,其中我们有一些与访问Maven存储库有关的限制。所以,我必须在BuildConfig.groovy文件中进行一些更改以使应用程序在新环境中正常运行。我可以访问JAR和自定义插件的本地版本代码。Grails 2.4.2 - 错误context.ContextLoader - 上下文初始化失败

我已经将JAR安装到我的本地Maven存储库中,并将自定义插件的代码文件本地放置在与我的项目代码相同的目录中。我在BuildConfig.groovy文件中进行了以下更改以解决出现的错误。

指定本地自定义插件:

​​

取而代之的是下面的语句中的插件模块:

compile ':custom-plugin:1.0'

指定的库块以下几点:

mavenRepo "http://repo.grails.org/grails/core"

mavenRepo "http://repo.grails.org/grails/plugins/"

指定的依赖块以下几点:

compile 'org.springframework:spring-aop:4.0.5.RELEASE'

compile 'org.springframework:spring-expression:3.0.2.RELEASE'

然而,这些变化我得到一个奇怪的错误消息,当我做grails run-app,我无法了解。错误日志中提到如下:

Error | 
 
2015-04-01 11:18:50,655 [localhost-startStop-1] ERROR context.ContextLoader - Context initialization failed 
 
Message: Error creating bean with name 'grailsApplication' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Initialization of bean failed; nested exception is java.lang.NoSuchFieldError: NULL 
 
    Line | Method 
 
->> 303 | innerRun in java.util.concurrent.FutureTask$Sync 
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
 
| 138 | run  in java.util.concurrent.FutureTask 
 
| 895 | runTask in java.util.concurrent.ThreadPoolExecutor$Worker 
 
| 918 | run  in  '' 
 
^ 662 | run . . in java.lang.Thread 
 

 
Caused by NoSuchFieldError: NULL 
 
->> 303 | innerRun in java.util.concurrent.FutureTask$Sync 
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
 
| 138 | run  in java.util.concurrent.FutureTask 
 
| 895 | runTask in java.util.concurrent.ThreadPoolExecutor$Worker 
 
| 918 | run  in  '' 
 
^ 662 | run . . in java.lang.Thread 
 

 
Error | 
 
2015-04-01 11:18:50,716 [localhost-startStop-1] ERROR context.GrailsContextLoaderListener - Error initializing the application: Error creating bean with name 'grailsApplication' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Initialization of bean failed; nested exception is java.lang.NoSuchFieldError: NULL 
 
Message: Error creating bean with name 'grailsApplication' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Initialization of bean failed; nested exception is java.lang.NoSuchFieldError: NULL 
 
    Line | Method 
 
->> 303 | innerRun in java.util.concurrent.FutureTask$Sync 
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
 
| 138 | run  in java.util.concurrent.FutureTask 
 
| 895 | runTask in java.util.concurrent.ThreadPoolExecutor$Worker 
 
| 918 | run  in  '' 
 
^ 662 | run . . in java.lang.Thread 
 

 
Caused by NoSuchFieldError: NULL 
 
->> 303 | innerRun in java.util.concurrent.FutureTask$Sync 
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
 
| 138 | run  in java.util.concurrent.FutureTask 
 
| 895 | runTask in java.util.concurrent.ThreadPoolExecutor$Worker 
 
| 918 | run  in  '' 
 
^ 662 | run . . in java.lang.Thread 
 

 

 
Process finished with exit code 1

有人可以恳请指出我的一些方向,至于为什么这个奇怪的错误快到了,我怎么能解决这个问题?

任何帮助将不胜感激。

指定的库块以下:

mavenRepo "http://repo.grails.org/grails/core"

mavenRepo "http://repo.grails.org/grails/plugins/"

回答

1

显然,这个问题是由于某种当我添加以下语句出现的框架内,内部冲突造成的

在依存关系块中指定以下内容:

compile 'org.springframework:spring-aop:4.0.5.RELEASE'

compile 'org.springframework:spring-expression:3.0.2.RELEASE'

当从BuildConfig.groovy文件中删除这些,我就能够让应用程序运行正常使用grails run-app

虽然我不太了解这个问题的确切原因。如果有人能够找到根本原因,那就太好了。

相关问题