在GWT中序列化aspectj方法

时间:2011-11-26 12:52:45

标签: gwt aspectj

我试图通过gwt-rpc向客户端(gwt)公开aspectJ方法,但是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 个答案:

答案 0 :(得分:1)

这不起作用,因为GWT需要访问暴露给客户端的任何Java类的源。这是将它们从Java编译为Javascript所必需的。如果使用AspectJ修改类,则添加的方法对GWT编译器不可见,因此不会对客户端可见。

我认为AspectJ对于这项任务来说只是错误的工具。如果要向现有类添加一些方法,可以编写一个(可能是通用的)容器类,其中包含Example的实例以及Example_x的版本信息。