2013-01-07 29 views
0

*已更新Grails:使用控制器的java類

我是grails和stack的新手。我正試圖在控制器中實例化一個java類。我的.java文件位於/ src文件夾中。我已經在Grails之外測試了這個類,它工作正常。但是,當我嘗試從控制器實例化它時,我得到一個空指針異常。我的相關代碼:

package matrices 

import org.springframework.dao.DataIntegrityViolationException 

class MFController { 

    static allowedMethods = [save: "POST", update: "POST", delete: "POST"] 

    def index() { 
     MatrixFactorization m = new MatrixFactorization() 
     def answer = m.getAnswer().toString() 
     return answer 
    } 

我的跟蹤:

Message: null 
    Line | Method 
->> 45 | run  in matrices.MatrixFactorization 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
|  36 | <init> in  '' 
|  10 | index . . in matrices.MFController$$ENtqy0Aa 
| 195 | doFilter in grails.plugin.cache.web.filter.PageFragmentCachingFilter 
|  63 | doFilter in grails.plugin.cache.web.filter.AbstractFilter 
| 1110 | runWorker in java.util.concurrent.ThreadPoolExecutor 
| 603 | run . . . in java.util.concurrent.ThreadPoolExecutor$Worker 
^ 722 | run  in java.lang.Thread 

MatrixFactorization類35-45

public MatrixFactorization() { 

double[] l1 = { 5, 3, 0, 1 }; 

double[] l2 = { 4, 0, 0, 1 }; 

double[] l3 = { 1, 1, 0, 5 }; 

double[] l4 = { 1, 0, 0, 4 }; 

double[] l5 = { 0, 1, 5, 4 }; //45 

在此先感謝

+3

您列出了'index'方法,但看起來失敗在'list'方法中。 –

+0

除了list()方法之外,請發佈MatrixFactorization類的源代碼,因爲堆棧跟蹤指出錯誤在該類的源代碼的第45行。還請指出哪一行是#45 – GreyBeardedGeek

+1

1.您的Java類是否在src /或src/java下。應該是後者。 2.包中的Java類是什麼?我假設矩陣,因爲你的代碼片段不顯示導入。我遇到了訪問默認包中類的問題。嘗試將它放在測試包下(如果尚未),然後將其導入控制器。 – uchamp

回答

0

很高興爲您工作。以下是發佈的評論作爲答案。

包中的Java類是什麼?我假設矩陣,因爲你的代碼片段不顯示導入。我遇到了訪問默認包中類的問題。嘗試將它放在測試包下(如果尚未),然後將其導入控制器。

0

的問題是在第45行中run方法MatrixFactorization類作爲堆棧跟蹤的第一行顯示。該類實例化很好,但內部失敗。在致電getAnswer()之前是否有一些缺失的配置或設置?