2014-04-10 260 views
1

最近,我从STS 3.3导入了一个正在运行的Grails项目到Intelj IDE中。但是,当我运行该应用程序时,在调试模式下出现以下错误。IntelliJ IDEA无法运行Grails 2.3.0项目

我在的Grails 2.3.0的IntelliJ 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 

有什么想法?

+1

提供IDEA和Grails版本pls – emilan

+0

STS有一个类似的问题 - http:// stackoverflow。com/questions/22610626/grails-app-wont-start-from-sts-but-launches-from-terminal –

+0

@emilan updated :) –

回答

0

原来,这不是一个Intellij问题。问题在于在Grails 2.3.0中关闭了-reloading选项。我通过升级到2.3.8解决了我的问题。

1

嘿,我已经得到了你的问题,确定你使用Linux机器。好了,对于你需要做到以下几点:

这个问题的根源casue是IDE需要根permisssion到RUN序连接到sokcets或succsfully 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中的环境瓦尔的定义后,有几种方法来创建桌面链接:

如上罗马舍甫琴科提到 推荐的方式进行整合的想法是调用配置|从欢迎屏幕创建桌面条目(或通过主菜单上的工具|创建桌面条目)

在ides.sh上调用“Make Link”并将“link to idea.sh”移动到Desktop。

DONE !!快乐编码!

+0

感谢您的答案,但尽管与'gksudo'运行Intellij,我得到同样的错误。是否有必要复制你的步骤? –

+0

@AlexanderSuraphel绝对先生! – danielad

+0

+1的帮助,但它仍然给出了同样的错误。我已经通过Intellij尝试执行的命令更新了我的问题。 –

1

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

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

+0

这与'2.3.11'工作,这不适合我!我正在尝试调试模式... –