如何将Grails生成的java类包含在grails项目中?
如何通过grails将生成的类用于项目中的java类。 将我的Groovy类用于Grails项目的Java类。接受他的方法,属性等......
示例:
我有这样的Domain类:
package es.prueba.domain
class Author implements Serializable {
String firstName
String lastName
static hasMany = [books: Book]
def relatesToMany = [ books : Book ]
SortedSet books
static constraints = {
books(nullable: true)
}
}
我想在Java文件中使用它。在我的例子中,我使用GWT发送带有服务AuthorService.groovy
的对象。
我使用规则生成接口:grails generate-gwt-rpc
bookService的:
package org.example.client;
import com.google.gwt.user.client.rpc.RemoteService;
public interface BookService extends RemoteService {
es.prueba.domain.Author getAuthor(int arg0);
}
BookServiceAsync:
package org.example.client;
import com.google.gwt.user.client.rpc.AsyncCallback;
public interface BookServiceAsync {
void getAuthor(int arg0, AsyncCallback callback);
}
但我得到了例外:
No source code is available for type es.prueba.domain.Author; did you forget to inherit a required module?
当我使用:grails run-app
命令运行应用程序时。
如何在项目中包含来源?
谢谢。
答案 0 :(得分:0)
您是否将域名类放在es.prueba.domain包中?我在源代码示例中没有看到包声明。
欢呼声
利
答案 1 :(得分:0)
我对Grails的GWT插件不是很熟悉,但它看起来更像是一个标准的GWT问题。
的GWT文档默认源路径是存储模块XML文件的 client 子包。
您的软件包名称是 es.prueba.domain ,因此GWT在查找源代码时找不到它。您必须在模块文件中指定它(比如说Application.gwt.xml),如下所示:
<module>
<!-- Inherit the core Web Toolkit stuff. -->
<inherits name="com.google.gwt.user.User"/>
<!-- add es.prueba.domain as source path -->
<source path="domain"/>
<!-- Specify the module entry point class. -->
<entry-point class="es.prueba.Application"/>
</module>