2013-02-18 142 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类中调用我的方法。