GGTS空指针异常

时间:2015-07-14 19:36:04

标签: grails spring-data spring-jdbc spring-tool-suite

我是这里的新手,希望我能彻底解释这一点。

使用Groovy Grails工具套件--GGTS(又名Spring Tool Suite - STS)完成Grails in Action一书,第二版。

GGTS版本3.6.4。 Grails版本2.4.4

我还在第1章。到这时,我已经在我的数据库中添加了几个“引号”。当我通过Grails控制台执行“println Quote.count()”时,我看到我有4个引号。

我尝试运行随机GSP并收到以下错误:

Line | Method
->>    7 | doCall    in C:/Users/donahujc/Documents/workspace-ggts-3.6.4.RELEASE/qotd/grails-app/views/quote/random.gsp
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 

Caused by NullPointerException: Cannot get property 'content' on null object**
->>    7 | doCall    in C__Users_donahujc_Documents_workspace_ggts_3_6_4_RELEASE_qotd_grails_app_views_quote_random_gsp$_run_closure2_closure4
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
|     10 | run       in C__Users_donahujc_Documents_workspace_ggts_3_6_4_RELEASE_qotd_grails_app_views_quote_random_gsp
|    198 | doFilter  in PageFragmentCachingFilter.java
|     63 | doFilter  in AbstractFilter.java
|   1142 | runWorker in java.util.concurrent.ThreadPoolExecutor
|    617 | run       in java.util.concurrent.ThreadPoolExecutor$Worker
^    745 | run . . . in java.lang.Thread

这告诉我的是,我的电话指的是什么。所以,我进入DBConsole后端,果然,我的引用表(包含内容和作者)不存在。

当我的DataSource.groovy文件更改为以下内容时,该怎么可能:

// environment specific settings
environments {
    development {
        dataSource {
            dbCreate = "update" // one of 'create', 'create-drop', 'update', 'validate', ''
            url = "jdbc:h2:devDb;MVCC=TRUE;LOCK_TIMEOUT=10000;DB_CLOSE_ON_EXIT=FALSE"

我将“create-drop”更改为“update”并删除了对内存的引用(mem :)。

我知道数据存在,因为我可以使用Grails控制台查询它。

复杂的部分是我无法一次完成这本书。所以我不得不在几天内多次关闭并重新启动GGTS。我认为重新运行应用程序会重新初始化表格,但情况似乎并非如此。

如何初始化此表?我尝试添加新报价。 (不知何故,我的索引从引号#4引用到引用#33。)但仍然没有我的GSP可以使用的表格。

我对如何使这个表(以及那里的数据)初始化感到茫然。这是我将要遇到的问题,因为我将不断关闭/重新开放GGTS。

帮助

编辑:(添加更多我的代码)

引用控制器:

def random(){
        def allQuotes = Quote.list()
        def randomQuote
        if (allQuotes.size() > 0){
            def randomIdx = new Random().nextInt(allQuotes.size())
        }else {
            randomQuote = new Quote(author:"Anonymous",
                content:"Real Programmers double peace out on quiche")
        }
        [quote:randomQuote]

    }

Random.gsp

<html>
<head>
<title>Random Quote</title> 
</head>
<body>
<div id="quote">
<q>${quote.content}</q>
<p>${quote.author}</p>
</div>
</body>
</html>

Quote.groovy

class Quote {

    String author
    String content
    Date created = new Date()

    static constraints = {
    }
}

到目前为止,一切都运转正常。我知道我的数据在数据库中,因为我可以从Grails控制台查询它。但是DB控制台甚至没有显示我的引用表:(

0 个答案:

没有答案