我是一個遺留系統,那裏是一個偏僻豆已經變得過於龐大和單片上的工作,我想保持獨立的新功能,我認爲需要補充。拆分遠程EJB功能的對象
我最初的想法是,而不是增加我的新方法,以現有的接口,創建我所有的東西一個新的接口並添加返回一個實現我的接口的遠程對象的一個方法。
我現在面臨的問題是,當我調用返回我的對象的方法,運行時嘗試序列化它,而不是發送存根。
代碼佈局或多或少是這樣的:
@Stateless
public class OldBean implements OldRemoteInterface {
//lots of the old unrelated methods here
public MyNewStuff getMyNewStuff() {
return new MyNewStuff();
}
}
@Remote
public interface OldRemoteInterface {
//lots of the old unrelated methods declared here
MyNewStuff getMyNewStuff();
}
public class MyNewStuff implements NewRemoteInterface {
//methods implemented here
}
@Remote
public interface NewRemoteInterface {
//new methods declared here
}
而且我收到的例外是:
"IOP00810267: (MARSHAL) An instance of class MyNewStuff could not be marshalled:
the class is not an instance of java.io.Serializable"
我試圖做「老辦法」,延伸java.rmi.Remote
界面,而不是使用EJB @Remote
註解和例外,我得到的是:
"IOP00511403: (INV_OBJREF) Class MyNewStuff not exported, or else is actually
a JRMP stub"
我知道我必須缺少的東西,應該是顯而易見的...: -/
我看到了,我期待更多的「黑魔法」被執行在添加@Remote註釋時引擎蓋下。 – fortran 2011-03-01 14:55:07
我希望也是這樣! :) – Renan 2011-03-01 22:29:54