我试图通过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
答案 0 :(得分:1)
这不起作用,因为GWT需要访问暴露给客户端的任何Java类的源。这是将它们从Java编译为Javascript所必需的。如果使用AspectJ修改类,则添加的方法对GWT编译器不可见,因此不会对客户端可见。
我认为AspectJ对于这项任务来说只是错误的工具。如果要向现有类添加一些方法,可以编写一个(可能是通用的)容器类,其中包含Example
的实例以及Example_x
的版本信息。