2013-02-18 178 views
2

我在Windows 7(32位)上使用Groovy/Grails工具套件3.1.0。我不能在我的生活中讓Grails識別我在我的Grails應用程序的/ src/java目錄中創建的簡單Java類。Grails無法識別Java類

這裏是我的java類:

public class PleaseWork { 

    public static void hello() 
    { 
     System.out.println("Hello from a java class."); 
    } 
} 

我從我創建了一個服務調用java類:我已經檢查了我的.classpath爲我的項目

package mypackage 
class CreatePdfService { 

    def serviceMethod() { 

     PleaseWork.hello() 
    } 
} 

,我看到了如下:

<classpath> 
<classpathentry kind="src" path="src/java"/> 
<classpathentry kind="src" path="src/groovy"/> 
<classpathentry kind="src" path="grails-app/conf"/>.... 

它看起來像我的Java源代碼目錄是包括在內,並沒有設置是不包括它。一切看起來不錯。

我的理解是我應該可以調用那個沒有問題的java類。我可以做一個沒有問題的Grails運行應用程序。但是...當我運行我的應用程序和代碼試圖調用PleaseWork.hello()我得到以下幾點:

| Error 2013-02-18 15:59:10,898 [http-bio-8080-exec-4] ERROR errors.GrailsExceptionResolver - 
MissingPropertyException occurred when processing request: [POST] /mypackage/main/createPdf 
No such property: PleaseWork for class: mypackage.CreatePdfService. Stacktrace follows: 
Message: No such property: PleaseWork for class: mypackage.CreatePdfService 

我做的Grails刷新的依賴性和沒有什麼作品。是什麼賦予了?

+0

我只是想通了: – user2085154 2013-02-19 00:01:11

回答

4

您無法從包中類的「默認」包中訪問類。將該類移動到與該服務相同的包,或放入不同的包並添加一個導入。

2

啊......謝謝伯特。我做了以下...

我在該/ src/java文件夾中創建了一個包。我叫包 「this.works」

這是我更新的Java類:

package this.works; 

public class PleaseWork 
{ 

    public static void hello() 
    { 
     System.out.println("Hello from a java class."); 
    } 
} 

這裏是調用Java類我更新Groovy類:

package myPackage 

import this.works.PleaseWork 

class CreatePdfService { 

    def serviceMethod() { 
     PleaseWork.hello() 
    } 
} 

這現在工作。我可以做一個grails run-app,並在我的Java類中調用我的方法。