【问题标题】:IntelliJ IDEA failing to run a Grails 2.3.0 projectIntelliJ IDEA 无法运行 Grails 2.3.0 项目
【发布时间】:2014-04-10 07:13:43
【问题描述】:

最近,我将一个工作 Grails 项目从 STS 3.3 导入到 Intelj IDE 中。但是,当我运行应用程序时,在调试模式下出现以下错误。

我正在使用 Grails 2.3.0IntelliJ IDEA 13.1.1

在 IntelliJIDE 上的 Grails 控制台上,我看到以下输出:

/usr/share/java/jdk1.6.0_30/bin/java -Dgrails.home=/opt/grails-2.3.0 -Dbase.dir=/home/you/Projects/terra-connect -Dtools.jar=/usr/share/java/jdk1.6.0_30/lib/tools.jar -Dgroovy.starter.conf=/opt/grails-2.3.0/conf/groovy-starter.conf -Xmx768M -Xms768M -XX:MaxPermSize=256m -XX:PermSize=256m -javaagent:/opt/grails-2.3.0/lib/org.springsource.springloaded/springloaded-core/jars/springloaded-core-1.1.3.jar -noverify -Dspringloaded=profile=grails -Didea.launcher.port=7532 -Didea.launcher.bin.path=/home/you/Dev/idea-IU-135.480/bin -Dfile.encoding=UTF-8 -classpath /opt/grails-2.3.0/lib/org.codehaus.groovy/groovy-all/jars/groovy-all-2.1.6.jar:/opt/grails-2.3.0/dist/grails-bootstrap-2.3.0.jar:/home/you/Dev/idea-IU-135.480/lib/idea_rt.jar com.intellij.rt.execution.application.AppMain org.codehaus.groovy.grails.cli.support.GrailsStarter --main org.codehaus.groovy.grails.cli.GrailsScriptRunner --conf /opt/grails-2.3.0/conf/groovy-starter.conf run-app`

以及运行 grails 应用程序后的堆栈跟踪,并带有以下消息:

2014-04-10 09:58:48,314 [localhost-startStop-1] ERROR StackTrace  - Full Stack Trace:
java.lang.NullPointerException
    at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodGetDeclaredAnnotations(ReflectiveInterceptor.java:935)
    at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodGetAnnotations(ReflectiveInterceptor.java:1491)
    at org.springframework.core.type.StandardAnnotationMetadata.hasAnnotatedMethods(StandardAnnotationMetadata.java:163)
    at org.springframework.context.annotation.ConfigurationClassUtils.isLiteConfigurationCandidate(ConfigurationClassUtils.java:106)
    at org.springframework.context.annotation.ConfigurationClassUtils.checkConfigurationClassCandidate(ConfigurationClassUtils.java:88)
    at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:253)
    at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:223)
    at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:630)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:461)
    at org.codehaus.groovy.grails.commons.spring.DefaultRuntimeSpringConfiguration.getApplicationContext(DefaultRuntimeSpringConfiguration.java:153)
    at org.codehaus.groovy.grails.commons.spring.GrailsRuntimeConfigurator.configure(GrailsRuntimeConfigurator.java:169)
    at org.codehaus.groovy.grails.commons.spring.GrailsRuntimeConfigurator.configure(GrailsRuntimeConfigurator.java:127)
    at org.codehaus.groovy.grails.web.context.GrailsConfigUtils.configureWebApplicationContext(GrailsConfigUtils.java:122)
    at org.codehaus.groovy.grails.web.context.GrailsContextLoader.initWebApplicationContext(GrailsContextLoader.java:108)
    at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:112)
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4939)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5434)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
    at java.util.concurrent.FutureTask.run(FutureTask.java:138)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at java.lang.Thread.run(Thread.java:662)
2014-04-10 09:58:48,319 [localhost-startStop-1] ERROR StackTrace  - Full Stack Trace:
java.lang.NullPointerException
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
    at java.util.concurrent.FutureTask.run(FutureTask.java:138)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at java.lang.Thread.run(Thread.java:662)
2014-04-10 09:58:48,320 [localhost-startStop-1] ERROR StackTrace  - Full Stack Trace:
java.lang.NullPointerException
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
    at java.util.concurrent.FutureTask.run(FutureTask.java:138)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at java.lang.Thread.run(Thread.java:662)
2014-04-10 09:58:48,320 [localhost-startStop-1] ERROR StackTrace  - Full Stack Trace:
java.lang.NullPointerException
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
    at java.util.concurrent.FutureTask.run(FutureTask.java:138)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at java.lang.Thread.run(Thread.java:662)
Disconnected from the target VM, address: '127.0.0.1:50341', transport: 'socket'

Process finished with exit code 1

有什么想法吗?

【问题讨论】:

  • 请提供 IDEA 和 Grails 版本
  • STS 也有类似的问题 - stackoverflow.com/questions/22610626/…
  • @AlexanderSuraphel 看看这篇文章blog.jdriven.com/2013/12/…也许你错过了什么
  • @AlexanderSuraphel 你的 grails 包稳定吗?你用 STS 或其他方法试过吗?
  • @danielad 应用程序仅在调试模式下在 STS 上启动。

标签: java spring grails groovy intellij-idea


【解决方案1】:

嘿,我有你的问题,确定你使用的是 Linux 机器。好的,为此您需要执行以下操作:

这个问题的根本原因是IDE需要以root权限运行才能连接到sokcets或成功debug.so,您应该进行以下更改:

Intellij 需要 root 权限才能使内置函数工作。

Either start using sudo:

sudo /your/inteljdirectory/bin/idea.sh
or give all users to run in debug mode Intellij, then start as yourself:

sudo chmod -R o+rw /your/inteljdirectory/idea.sh

cd /your/inteljdirectory/bin
cd sudo ./idea.sh              

请记住,这与您的问题没有直接关系,但是:

IDEA_JDK 和 JDK_HOME 环境变量的位置。它们必须放在 /etc/profile 中。

在 etc/profile 中定义环境变量后,有几种方法可以创建桌面链接:

如上所述,罗曼·舍甫琴科 集成 IDEA 的推荐方法是调用 Configure |从欢迎屏幕创建桌面条目(或通过工具 | 从主菜单创建桌面条目)

在 ides.sh 上调用“建立链接”并将“链接到 idea.sh”移动到桌面。

完成!!编码愉快!

【讨论】:

  • 感谢您的回答,但尽管使用 gksudo 运行 Intellij,但我遇到了同样的错误。是否有必要复制您的步骤?
  • @AlexanderSuraphel 绝对是先生!
  • +1 寻求帮助,但它仍然给出同样的错误。我已经通过 Intellij 尝试执行的命令更新了我的问题。
【解决方案2】:

尝试Ctrl + Alt + G,然后在出现运行目标对话框时在命令行中输入--reloading run-app。那为我修好了!

如果效果很好,那么您可以通过转到 Run->Edit Configuration 并在命令行框中的 run-app 之前添加 --reloading 来更改默认配置。 希望对@AlexanderSuraphel 有所帮助!

【讨论】:

  • 这与 2.3.11 一起工作,这对我不起作用!我现在正在尝试调试模式...
【解决方案3】:

事实证明这不是 Intellij 问题。问题在于 Grails 2.3.0 中关闭了 -reloading 选项。我通过升级到2.3.8 解决了我的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-01-18
    • 1970-01-01
    • 2016-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-21
    相关资源
    最近更新 更多