Grails无法识别Java类
我正在Windows7(32位)上使用Groovy/Grails工具套件3.1.0。我无法让Grails识别我在Grails应用程序的/src/Java目录中创建的简单Java类 这是我的java类:Grails无法识别Java类,grails,Grails,我正在Windows7(32位)上使用Groovy/Grails工具套件3.1.0。我无法让Grails识别我在Grails应用程序的/src/Java目录中创建的简单Java类 这是我的java类: public class PleaseWork { public static void hello() { System.out.println("Hello from a java class."); } } package this.works;
public class PleaseWork {
public static void hello()
{
System.out.println("Hello from a java class.");
}
}
package this.works;
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"/>....
| 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刷新依赖项的工作,但没有任何效果。提供了什么?您无法从包中的类访问“默认”包中的类。将类移动到与服务相同的包中,或者将其放入不同的包中并添加导入。啊。。。谢谢你,伯特。我做了以下几件事 我在/src/java文件夹中创建了一个包。我把这个包裹叫做“这个,管用” 以下是我更新的Java类:
public class PleaseWork {
public static void hello()
{
System.out.println("Hello from a java class.");
}
}
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应用程序,我的Java类中的方法被调用。我刚刚想出来:如果我想把我的Java类放在另一个包中,我可以放在哪里?任何你想要的有效包-只要根据需要添加一个导入,在你引用它的地方我尝试在src folder下创建一个Java文件夹,但编译器无法识别其中的任何类或包。将它放在services文件夹下是可行的。您应该能够将Java文件放在src/groovy下。你在用IntelliJ吗?如果没有src/java文件夹,而您手动添加它,则它不会自动被视为源文件夹,您需要右键单击它并选择“将目录标记为>源根目录”。我正在使用IntelliJ,我手动创建了文件夹,但我知道问题出在哪里。谢谢你的帮助