Grails无法识别Java类

时间:2013-02-18 23:53:54

标签: grails

我在Windows 7(32位)上使用Groovy / Grails Tool Suite 3.1.0。我不能为我的生活让Grails认识到我在Grails应用程序的/ src / java目录中创建的一个简单的Java类。

这是我的java类:

public class PleaseWork {

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

我从我创建的服务中调用java类:

package mypackage
class CreatePdfService {

    def serviceMethod() {

        PleaseWork.hello()
    }
}

我已经检查了我的项目的.classpath,我看到了以下内容:

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

看起来我的java源目录已包含在内,并且没有排除它的设置。一切都很好看。

我的理解是我应该能够毫无问题地调用那个java类。我可以做一个没有问题的grails run-app。但是......当我运行我的应用程序并且代码试图调用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 refresh-dependencies,但没有任何效果。是什么给了什么?

2 个答案:

答案 0 :(得分:5)

您无法从包中的类访问“default”包中的类。将类移动到与服务相同的包中,或将其放在另一个包中并添加导入。

答案 1 :(得分:2)

啊,谢谢伯特。我做了以下......

我在/ src / java文件夹中创建了一个包。我打电话给“this.works”包

这是我更新的Java类:

package this.works;

public class PleaseWork 
{

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

这是我更新的Groovy类,它调用Java类:

package myPackage

import this.works.PleaseWork

class CreatePdfService {

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

这现在有效。我可以做一个grails run-app,我的Java类中的方法被调用。