[問題] RMI的一個小小問題

看板java作者 (嘰咕嘰咕嘰咕)時間15年前 (2008/12/14 03:29), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/2 (看更多)
我有一個RMI程式 在server端 Account這個class是存放多個使用者自行輸入的物件 然後存放到一個vector物件裡 這個vector我放在RMI的implement裡面 再rebind 這個vector 物件 在Account這個物件裡面 我有一個更動裡面的值的method 稱作purchase好了 問題在這裡 我的client的程式中間有一段無窮迴圈 可以讓使用者無限次數的輸入指令存取資料 如果我的lookup指令在迴圈裡面 而且直接呼叫purchase去改server端的值的話 while(true){ RMIInterface temp = (RMIInterface)Naming.lookup("rmi://" + HOST + "/Accounts"); Vector<Account> acctDetails = temp.getPurchaseAccounts(); Account acct = acctDetails.elementAt(1); acct.purchase(1) } 這種情形我的迴圈每跑一次lookup他的值就會復原 所以在client端看起來資料都不會變 但是把lookup指令丟到迴圈外面以後就好了 可是當client的程式重新開啟以後(server還在) 他的值還是會復原 後來我把程式改了一下 在client端先呼叫server的implement class 再由implement class呼叫purchase這個method 變成我的lookup必須丟在迴圈外面 也就是要重新lookup client才會接到新的資料 但是這樣只要server不重開 我的client也不會reset 這樣好像比較接近題意 但是有點搞不太清楚為什麼會這樣 麻煩各位解惑了 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.161.211.192
文章代碼(AID): #19H0qtzR (java)
文章代碼(AID): #19H0qtzR (java)