Включить сгенерированный Grails Java-класс в проект grails - PullRequest
0 голосов
/ 04 декабря 2009

Как я могу включить сгенерированный Grails Java-класс в проект Grails?

Как я могу использовать сгенерированный класс grails в java-класс в проекте. Используйте мой класс Groovy в классе Java проекта Grails. Доступ к его методам, атрибутам и т. Д. ...

Пример:

У меня есть класс 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.

Как включить источник в проект?

Спасибо.

Ответы [ 2 ]

0 голосов
/ 09 декабря 2009

Я не очень знаком с плагином GWT для Grails, но он больше похож на стандартную проблему GWT.

Из документации GWT о , как организовать проекты :

Исходным путем по умолчанию является подпакет client , в котором хранится XML-файл модуля.

Имя вашего пакета 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>
0 голосов
/ 05 декабря 2009

Вы поместили свой класс домена в пакет es.prueba.domain? Я не вижу декларации пакета в вашем примере исходного кода.

ура

Lee

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...