2011-11-26 56 views
0

我試圖通過gwt-rpc向客戶端(gwt)展示aspectJ方法,但gwt客戶端無法找到某個方面中定義的方法。我公開的類實現了IsSerializable並且只有它的方法對客戶端接口是可見的......通過它們的方面添加的方法contrariwise no。我如何解決這個問題?感謝您的建議。在GWT中序列化aspectj方法

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

這是行不通的,因爲GWT需要訪問暴露於客戶端的任何Java類的來源。這是編譯它們從Java到Javascript所必需的。如果使用AspectJ修改類,添加的方法對於GWT編譯器將不可見,因此對客戶端不可見。

我想說AspectJ只是這個任務的錯誤工具。如果你想添加一些方法到現有的類,你可以寫一個(可能是泛型的)容器類,其中包含Example的實例以及來自Example_x的版本信息。