我正在嘗試實現自定義RMI激活方案,其中遠程Activatable對象將託管在自定義EXE進程中,而不是標準的Java.exe/Javaw.exe。自定義RMI Activator進程
在RMI中「可激活」對象可以被保留並恢復或按需啓動。在向RMI註冊表註冊'Activatable'對象並首次請求後,RMID啓動一個宿主子進程(通常爲java.exe/javaw.exe),通過子進程的stdin傳遞兩條信息,並詢問子進程運行特殊隱藏類「sun.rmi.server.ActivationGroupInit」的主要方法。該類引導其他所有內容準備創建和託管「Activatable」對象實例的過程。客戶端和服務器通過RMI進行通信之後。
我已經定義了一個簡單的Win32 EXE項目,編寫了一些JNI代碼來啓動這個EXE中的JVM,並設法調用'sun.rmi'server.ActivationGroupInit'的主要方法。該類能夠解析標準輸入並提取創建ActivationGroup所需的任何內容。 但是我遇到了一些問題,最終導致遠程對象的激活失敗(使用UnknownObjectException
),我正在對其進行故障排除。
在這一點上,我只想退後一步,詢問是否有人曾嘗試過,並知道是否有任何我應該早知道的陷阱?
感謝, 蘭吉特