搭建第一个Grails应用程序时出现NullPointer异常
从Grails开始,我已经安装了Grails版本2.4.0,并在GNU/Linux上使用JDK 1.7.055,我执行了以下操作序列,但不断得到NullPointerException。有人能指出我遗漏了什么或做错了什么吗搭建第一个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 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中运行
我尝试了这个,并且能够重现它。若我们生成视图,那个么它将被解析,但若并没有视图,它将给出错误。grailsjira
中有一个问题,请参见他们提供的补丁
希望这有帮助。对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