Мы пытаемся использовать RequestFactory
с существующей моделью объекта Java. Все наши объекты Java реализуют интерфейс DomainObject
и предоставляют метод getObjectId()
(это имя было выбрано, поскольку getId()
может быть двусмысленным и конфликтовать с фактическим идентификатором объекта домена из моделируемого домена.
Интерфейс ServiceLayerDecorator
позволяет настраивать стратегии поиска свойств ID и версии.
public class MyServiceLayerDecorator extends ServiceLayerDecorator {
@Override
public Object getId(Object object) {
DomainObject domainObject = (DomainObject) object;
return domainObject.getObjectId();
}
}
Все идет нормально. Однако попытка развернуть это решение приводит к ошибкам времени выполнения. В частности, RequestFactoryInterfaceValidator
жалуется:
[ERROR] There is no getId() method in type com.mycompany.server.MyEntity
Затем позже:
[ERROR] Type type com.mycompany.client.MyEntityProxy was previously marked as bad
[ERROR] The type com.mycompany.client.MyEntityProxy did not pass RequestFactory validation
[ERROR] Unexpected error
com.google.web.bindery.requestfactory.server.UnexpectedException: The type com.mycompany.client.MyEntityProxy did not pass RequestFactory validation
at com.google.web.bindery.requestfactory.server.ServiceLayerDecorator.die(ServiceLayerDecorator.java:212) ~[gwt-servlet.jar:na]
Мой вопрос: почему ServiceLayerDecorator
позволяет настраивать стратегии поиска идентификатора и версии, если RequestFactoryInterfaceValidator
жестко кодирует соглашение getId()
и getVersion()
?
Думаю, я мог бы переопределить ServiceLayerDecorator.resolveClass()
, чтобы игнорировать "отравленные" прокси-классы, но на данный момент кажется, что я слишком много борюсь с фреймворком...
RequestFactoryInterfaceValidator
и повторного чтения документов мне кажется, что мне может понадобиться использовать здесь собственный типLocator
... - person Eric   schedule 08.09.2011getId()
иgetVersion()
вServiceLayerDecorator
, если мне все еще нужно пометить каждыйEntityProxy
определеннымLocator
, который также определяет это поведение? - person Eric   schedule 08.09.2011