搭建第一个Grails应用程序时出现NullPointer异常

搭建第一个Grails应用程序时出现NullPointer异常,grails,Grails,从Grails开始,我已经安装了Grails版本2.4.0,并在GNU/Linux上使用JDK 1.7.055,我执行了以下操作序列,但不断得到NullPointerException。有人能指出我遗漏了什么或做错了什么吗 grails create-app firstgrails cd firstgrails grails grails> run-app 我转到localhost:8080/firstgrails并查看生成的页面 接下来我会 grails> create-d

从Grails开始,我已经安装了Grails版本2.4.0,并在GNU/Linux上使用JDK 1.7.055,我执行了以下操作序列,但不断得到NullPointerException。有人能指出我遗漏了什么或做错了什么吗

grails create-app firstgrails

cd firstgrails

grails

grails> run-app
我转到localhost:8080/firstgrails并查看生成的页面

接下来我会

grails> create-domain-class tag
然后转到firstgrails/grails app/domain/firstgrails文件夹并编辑Tag.groovy,使其包含:

// Tag.groovy
package firstgrails

class Tag {
    String name
    String description
}
下一个

并将firstgrails/grailsapp/controllers/firstgrails/TagController.groovy编辑为

// TagController.groovy
package firstgrails

class TagController {
    static scaffold = Tag
}
我在浏览器中重新加载,firstgrails.TagController被添加到可用的 欢迎信息下的控制器。选择它,我创建了一个带有名称和描述的标记,该标记按预期显示在标记列表中。但现在每当我尝试添加第二个标记时,我都会得到一个500错误:内部服务器错误

URI: /firstgrails/tag/create
Class: java.lang.NullPointerException
Message: null
控制台中的跟踪是:

 Error 2014-06-03 18:28:31,714 [http-bio-8080-exec-2] ERROR errors.GrailsExceptionResolver  - NullPointerException occurred when processing request: [GET] /firstgrails/tag/create
Stacktrace follows:
Message: Error processing GroovyPageView: Error executing tag <g:form>: Error executing tag <g:render>: null
    Line | Method
->>  527 | doFilter  in /tag/create
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
Caused by GrailsTagException: Error executing tag <g:form>: Error executing tag <g:render>: null
->>   35 | doCall    in /tag/create
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
Caused by GrailsTagException: Error executing tag <g:render>: null
->>   30 | doCall    in /tag/create
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
Caused by NullPointerException: null
->>  333 | hash      in java.util.concurrent.ConcurrentHashMap
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
|    988 | get       in     ''
|    141 | getValue  in grails.util.CacheEntry
|     81 | getValue  in     ''
|     73 | doCall .  in tag_create$_run_closure2_closure24
|     78 | doCall    in tag_create$_run_closure2
|     81 | run . . . in tag_create
|    189 | doFilter  in grails.plugin.cache.web.filter.PageFragmentCachingFilter
|     63 | doFilter  in grails.plugin.cache.web.filter.AbstractFilter
|   1145 | runWorker in java.util.concurrent.ThreadPoolExecutor
|    615 | run . . . in java.util.concurrent.ThreadPoolExecutor$Worker
^    745 | run       in java.lang.Thread
| Error 2014-06-03 18:30:33,050 [http-bio-8080-exec-9] ERROR errors.GrailsExceptionResolver  - NullPointerException occurred when processing request: [GET] /firstgrails/tag/create
Stacktrace follows:
Message: Error processing GroovyPageView: Error executing tag <g:form>: Error executing tag <g:render>: null
    Line | Method
->>  527 | doFilter  in /tag/create
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
Caused by GrailsTagException: Error executing tag <g:form>: Error executing tag <g:render>: null
->>   35 | doCall    in /tag/create
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
Caused by GrailsTagException: Error executing tag <g:render>: null
->>   30 | doCall    in /tag/create
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
Caused by NullPointerException: null
->>  333 | hash      in java.util.concurrent.ConcurrentHashMap
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
|    988 | get       in     ''
|    141 | getValue  in grails.util.CacheEntry
|     81 | getValue  in     ''
|     73 | doCall .  in tag_create$_run_closure2_closure24
|     78 | doCall    in tag_create$_run_closure2
|     81 | run . . . in tag_create
|    189 | doFilter  in grails.plugin.cache.web.filter.PageFragmentCachingFilter
|     63 | doFilter  in grails.plugin.cache.web.filter.AbstractFilter
|   1145 | runWorker in java.util.concurrent.ThreadPoolExecutor
|    615 | run . . . in java.util.concurrent.ThreadPoolExecutor$Worker
^    745 | run       in java.lang.Thread
| Error 2014-06-03 18:32:21,796 [http-bio-8080-exec-5] ERROR errors.GrailsExceptionResolver  - NullPointerException occurred when processing request: [GET] /firstgrails/tag/create
Stacktrace follows:
Message: Error processing GroovyPageView: Error executing tag <g:form>: Error executing tag <g:render>: null
    Line | Method
->>  527 | doFilter  in /tag/create
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
Caused by GrailsTagException: Error executing tag <g:form>: Error executing tag <g:render>: null
->>   35 | doCall    in /tag/create
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
Caused by GrailsTagException: Error executing tag <g:render>: null
->>   30 | doCall    in /tag/create
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
Caused by NullPointerException: null
->>  333 | hash      in java.util.concurrent.ConcurrentHashMap
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
|    988 | get       in     ''
|    141 | getValue  in grails.util.CacheEntry
|     81 | getValue  in     ''
|     73 | doCall .  in tag_create$_run_closure2_closure24
|     78 | doCall    in tag_create$_run_closure2
|     81 | run . . . in tag_create
|    189 | doFilter  in grails.plugin.cache.web.filter.PageFragmentCachingFilter
|     63 | doFilter  in grails.plugin.cache.web.filter.AbstractFilter
|   1145 | runWorker in java.util.concurrent.ThreadPoolExecutor
|    615 | run . . . in java.util.concurrent.ThreadPoolExecutor$Worker
^    745 | run       in java.lang.Thread
Error 2014-06-03 18:28:31714[http-bio-8080-exec-2]错误。GrailExceptionResolver-NullPointerException在处理请求时发生:[GET]/firstgrails/tag/create
跟踪如下:
消息:处理GroovyPageView时出错:执行标记时出错:执行标记时出错:null
直线法
->>527 | doFilter in/tag/create
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
由GrailStageException引起:执行标记时出错:执行标记时出错:null
->>35 |记录/标记/创建
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
由GrailStageException引起:执行标记时出错:null
->>30 |记录/标记/创建
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
由NullPointerException引起:null
->>333 java.util.concurrent.ConcurrentHashMap中的散列
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
|988 |上车“
|141 | grails.util.CacheEntry中的getValue
|81 |获取“”中的值
|73 | doCall。在标记\u create$\u run\u closure2\u closure24中
|78 |标记中的doCall(创建$)(运行)closure2
|81 |跑。在tag_中创建
|189 | grails.plugin.cache.web.filter.PageFragmentCachingFilter中的doFilter
|63 | grails.plugin.cache.web.filter.AbstractFilter中的doFilter
|1145 | java.util.concurrent.ThreadPoolExecutor中的runWorker
|615 |跑。在java.util.concurrent.ThreadPoolExecutor$Worker中
^745 |在java.lang.Thread中运行
|错误2014-06-03 18:30:33050[http-bio-8080-exec-9]错误。GrailExceptionResolver-NullPointerException在处理请求[GET]/firstgrails/tag/create]时发生
跟踪如下:
消息:处理GroovyPageView时出错:执行标记时出错:执行标记时出错:null
直线法
->>527 | doFilter in/tag/create
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
由GrailStageException引起:执行标记时出错:执行标记时出错:null
->>35 |记录/标记/创建
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
由GrailStageException引起:执行标记时出错:null
->>30 |记录/标记/创建
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
由NullPointerException引起:null
->>333 java.util.concurrent.ConcurrentHashMap中的散列
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
|988 |上车“
|141 | grails.util.CacheEntry中的getValue
|81 |获取“”中的值
|73 | doCall。在标记\u create$\u run\u closure2\u closure24中
|78 |标记中的doCall(创建$)(运行)closure2
|81 |跑。在tag_中创建
|189 | grails.plugin.cache.web.filter.PageFragmentCachingFilter中的doFilter
|63 | grails.plugin.cache.web.filter.AbstractFilter中的doFilter
|1145 | java.util.concurrent.ThreadPoolExecutor中的runWorker
|615 |跑。在java.util.concurrent.ThreadPoolExecutor$Worker中
^745 |在java.lang.Thread中运行
|错误2014-06-03 18:32:21796[http-bio-8080-exec-5]错误。GrailExceptionResolver-NullPointerException在处理请求[GET]/firstgrails/tag/create]时发生
跟踪如下:
消息:处理GroovyPageView时出错:执行标记时出错:执行标记时出错:null
直线法
->>527 | doFilter in/tag/create
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
由GrailStageException引起:执行标记时出错:执行标记时出错:null
->>35 |记录/标记/创建
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
由GrailStageException引起:执行标记时出错:null
->>30 |记录/标记/创建
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
由NullPointerException引起:null
->>333 java.util.concurrent.ConcurrentHashMap中的散列
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
|988 |上车“
|141 | grails.util.CacheEntry中的getValue
|81 |获取“”中的值
|73 | doCall。在标记\u create$\u run\u closure2\u closure24中
|78 |标记中的doCall(创建$)(运行)closure2
|81 |跑。在tag_中创建
|189 | grails.plugin.cache.web.filter.PageFragmentCachingFilter中的doFilter
|63 | grails.plugin.cache.web.filter.AbstractFilter中的doFilter
|1145 | java.util.concurrent.ThreadPoolExecutor中的runWorker
|615 |跑。在java.util.concurrent.ThreadPoolExecutor$Worker中
^745 |在java.lang.Thread中运行

我尝试了这个,并且能够重现它。若我们生成视图,那个么它将被解析,但若并没有视图,它将给出错误。grails
jira
中有一个问题,请参见他们提供的补丁


希望这有帮助。

对Grails的2.3.9版做了完全相同的事情,一切都正常。确认在
Grails>
提示符中添加
generate views firstGrails.Tag
,作为一个ext
 Error 2014-06-03 18:28:31,714 [http-bio-8080-exec-2] ERROR errors.GrailsExceptionResolver  - NullPointerException occurred when processing request: [GET] /firstgrails/tag/create
Stacktrace follows:
Message: Error processing GroovyPageView: Error executing tag <g:form>: Error executing tag <g:render>: null
    Line | Method
->>  527 | doFilter  in /tag/create
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
Caused by GrailsTagException: Error executing tag <g:form>: Error executing tag <g:render>: null
->>   35 | doCall    in /tag/create
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
Caused by GrailsTagException: Error executing tag <g:render>: null
->>   30 | doCall    in /tag/create
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
Caused by NullPointerException: null
->>  333 | hash      in java.util.concurrent.ConcurrentHashMap
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
|    988 | get       in     ''
|    141 | getValue  in grails.util.CacheEntry
|     81 | getValue  in     ''
|     73 | doCall .  in tag_create$_run_closure2_closure24
|     78 | doCall    in tag_create$_run_closure2
|     81 | run . . . in tag_create
|    189 | doFilter  in grails.plugin.cache.web.filter.PageFragmentCachingFilter
|     63 | doFilter  in grails.plugin.cache.web.filter.AbstractFilter
|   1145 | runWorker in java.util.concurrent.ThreadPoolExecutor
|    615 | run . . . in java.util.concurrent.ThreadPoolExecutor$Worker
^    745 | run       in java.lang.Thread
| Error 2014-06-03 18:30:33,050 [http-bio-8080-exec-9] ERROR errors.GrailsExceptionResolver  - NullPointerException occurred when processing request: [GET] /firstgrails/tag/create
Stacktrace follows:
Message: Error processing GroovyPageView: Error executing tag <g:form>: Error executing tag <g:render>: null
    Line | Method
->>  527 | doFilter  in /tag/create
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
Caused by GrailsTagException: Error executing tag <g:form>: Error executing tag <g:render>: null
->>   35 | doCall    in /tag/create
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
Caused by GrailsTagException: Error executing tag <g:render>: null
->>   30 | doCall    in /tag/create
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
Caused by NullPointerException: null
->>  333 | hash      in java.util.concurrent.ConcurrentHashMap
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
|    988 | get       in     ''
|    141 | getValue  in grails.util.CacheEntry
|     81 | getValue  in     ''
|     73 | doCall .  in tag_create$_run_closure2_closure24
|     78 | doCall    in tag_create$_run_closure2
|     81 | run . . . in tag_create
|    189 | doFilter  in grails.plugin.cache.web.filter.PageFragmentCachingFilter
|     63 | doFilter  in grails.plugin.cache.web.filter.AbstractFilter
|   1145 | runWorker in java.util.concurrent.ThreadPoolExecutor
|    615 | run . . . in java.util.concurrent.ThreadPoolExecutor$Worker
^    745 | run       in java.lang.Thread
| Error 2014-06-03 18:32:21,796 [http-bio-8080-exec-5] ERROR errors.GrailsExceptionResolver  - NullPointerException occurred when processing request: [GET] /firstgrails/tag/create
Stacktrace follows:
Message: Error processing GroovyPageView: Error executing tag <g:form>: Error executing tag <g:render>: null
    Line | Method
->>  527 | doFilter  in /tag/create
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
Caused by GrailsTagException: Error executing tag <g:form>: Error executing tag <g:render>: null
->>   35 | doCall    in /tag/create
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
Caused by GrailsTagException: Error executing tag <g:render>: null
->>   30 | doCall    in /tag/create
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
Caused by NullPointerException: null
->>  333 | hash      in java.util.concurrent.ConcurrentHashMap
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
|    988 | get       in     ''
|    141 | getValue  in grails.util.CacheEntry
|     81 | getValue  in     ''
|     73 | doCall .  in tag_create$_run_closure2_closure24
|     78 | doCall    in tag_create$_run_closure2
|     81 | run . . . in tag_create
|    189 | doFilter  in grails.plugin.cache.web.filter.PageFragmentCachingFilter
|     63 | doFilter  in grails.plugin.cache.web.filter.AbstractFilter
|   1145 | runWorker in java.util.concurrent.ThreadPoolExecutor
|    615 | run . . . in java.util.concurrent.ThreadPoolExecutor$Worker
^    745 | run       in java.lang.Thread