Метод сериализации аспекта в GWT - PullRequest
0 голосов
/ 26 ноября 2011

Я пытаюсь предоставить клиенту (gwt) метод aspectJ через gwt-rpc, но клиент gwt не может найти метод, определенный в аспекте. Класс, который я представляю, реализует IsSerializable, и только его метод видим для интерфейса клиента ... метод, добавленный их аспектом, напротив, нет. Как я могу это исправить? спасибо в совете.

p.s. Я приведу небольшой пример для большей ясности:

это класс ...

public class Example implements IsSerializable{

   private String name;

   public setName(String name){
      this.name=name
   }
}

и это аспект ...

privileged aspect Example_x{

   public int Example.getVersion() {
      return this.version;
   }
}

Метод Example.getVersion () недоступен на стороне клиента.

TNX

1 Ответ

1 голос
/ 26 ноября 2011

Это не сработает, так как GWT необходим доступ к источнику любого Java-класса, доступного на стороне клиента.Это необходимо для их компиляции из Java в Javascript.Если вы модифицируете свои классы с использованием AspectJ, добавленные методы не будут видны компилятору GWT и, следовательно, не клиенту.

Я бы сказал, что AspectJ - просто неправильный инструмент для этой задачи.Если вы хотите добавить некоторые методы к существующим классам, вы можете написать (возможно, универсальный) контейнерный класс, который содержит экземпляр Example, а также информацию о версии из Example_x.

...