nullpointerexception

ozxc1zmp  于 2021-07-09  发布在  Java
关注(0)|答案(0)|浏览(208)

我有一个表(oracle12cdb),它在grails(3.3.9)中不包含显式id列,我想动态地构建它。因此,我尝试创建一个由其所有列组成的复合键(没有一个列可以为null),因为这是我找到的唯一解决方法,因此代码如下所示:

class AliasFrequencyDict implements Serializable{
    String frequency
    String unit
    String description
    String lang

    static constraints = {
        frequency maxSize: 10, sqlType: 'VARCHAR2'
        unit maxSize: 1, sqlType: 'VARCHAR2'
        description maxSize: 30, sqlType: 'VARCHAR2'
        lang maxSize: 2, sqlType: 'VARCHAR2'
    }

    static mapping = {
        sort 'frequency'
        version false
        id composite: ['frequency', 'unit', 'description', 'lang']
    }
}

在控制器中,我只需要 static scaffold = AliasFrequencyDict . 但是,当我尝试访问索引时,我得到一个 java.lang.NullPointerException 带着一条信息 Request processing failed; nested exception is org.grails.gsp.GroovyPagesException: Error processing GroovyPageView: [Byte array resource [view:-,-,aliasFrequencyDict:index]:21] Error executing tag <f:table>: null . 堆栈跟踪如下所示:

Line | Method
->>  473 | createGroovyPageException    in Byte array resource [view:-,-,aliasFrequencyDict:index]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 

Caused by GrailsTagException: [Byte array resource [view:-,-,aliasFrequencyDict:index]:21] Error executing tag <f:table>: null
->>   21 | throwRootCause               in Byte array resource [view:-,-,aliasFrequencyDict:index]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 

Caused by NullPointerException: null
->>   35 | <init>                       in org.grails.scaffolding.model.property.DomainPropertyImpl
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
|     26 | build                        in org.grails.scaffolding.model.property.DomainPropertyFactoryImpl
|    118 | getListOutputProperties . .  in org.grails.scaffolding.model.DomainModelServiceImpl
|    540 | resolvePersistentProperties  in grails.plugin.formfields.FormFieldsTagLib
|    415 | resolvePropertyNames . . . . in     ''
|    402 | resolveProperties            in     ''
|    230 | doCall . . . . . . . . . . . in grails.plugin.formfields.FormFieldsTagLib$_closure4
|    446 | invokeTagLibClosure          in org.grails.gsp.GroovyPage
|    364 | invokeTag . . . . . . . . .  in     ''
|     54 | doCall                       in Byte_array_resource__view_____aliasFrequencyDict_index_$_run_closure2
|    200 | executeClosure . . . . . . . in org.grails.taglib.TagBodyClosure
|    102 | captureClosureOutput         in     ''
|    213 | call . . . . . . . . . . . . in     ''
|     48 | captureTagContent            in org.grails.plugins.web.taglib.SitemeshTagLib
|    156 | doCall . . . . . . . . . . . in org.grails.plugins.web.taglib.SitemeshTagLib$_closure3
|    446 | invokeTagLibClosure          in org.grails.gsp.GroovyPage
|    364 | invokeTag . . . . . . . . .  in     ''
|     72 | run                          in Byte_array_resource__view_____aliasFrequencyDict_index_
|    162 | doWriteTo . . . . . . . . .  in org.grails.gsp.GroovyPageWritable
|     82 | writeTo                      in     ''
|     76 | renderTemplate . . . . . . . in org.grails.web.servlet.view.GroovyPageView
|     71 | renderWithinGrailsWebRequest in org.grails.web.servlet.view.AbstractGrailsView
|     55 | renderMergedOutputModel . .  in     ''
|    303 | render                       in org.springframework.web.servlet.view.AbstractView
|    150 | renderInnerView . . . . . .  in org.grails.web.sitemesh.GrailsLayoutView
|    128 | obtainContent                in     ''
|     63 | renderTemplate . . . . . . . in     ''
|     71 | renderWithinGrailsWebRequest in org.grails.web.servlet.view.AbstractGrailsView
|     55 | renderMergedOutputModel . .  in     ''
|    303 | render                       in org.springframework.web.servlet.view.AbstractView
|   1286 | render . . . . . . . . . . . in org.springframework.web.servlet.DispatcherServlet
|   1041 | processDispatchResult        in     ''
|    984 | doDispatch . . . . . . . . . in     ''
|    901 | doService                    in     ''
|    970 | processRequest . . . . . . . in org.springframework.web.servlet.FrameworkServlet
|    861 | doGet                        in     ''
|    846 | service . . . . . . . . . .  in     ''
|     55 | doFilterInternal             in org.springframework.boot.web.filter.ApplicationContextHeaderFilter
|     77 | doFilterInternal . . . . . . in org.grails.web.servlet.mvc.GrailsWebRequestFilter
|     67 | doFilterInternal             in org.grails.web.filters.HiddenHttpMethodFilter
|   1149 | runWorker . . . . . . . . .  in java.util.concurrent.ThreadPoolExecutor
|    624 | run                          in java.util.concurrent.ThreadPoolExecutor$Worker
^    748 | run . . . . . . . . . . . .  in java.lang.Thread

为什么会这样?我怎样才能修好它,使脚手架重新开始工作?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题