我正在嘗試使用RMI進行一些測試。RMI代碼庫,連接到本地代碼庫
我有一個.jar文件,其中包含我需要調用的方法的類。在我的NetBeans項目中,我有一個TestClient類,它必須連接到我的遠程接口ShareBroker。 我的問題是如何爲java.rmi.server.codebase設置正確的地址,以及爲了查找ShareBrooker,我需要在我的TestClient中使用哪個地址。
我嘗試了一些不同的地址和組合,但無法得到這個工作。 對於此測試,我需要將代碼庫設置在本地目錄中。
我正在嘗試使用RMI進行一些測試。RMI代碼庫,連接到本地代碼庫
我有一個.jar文件,其中包含我需要調用的方法的類。在我的NetBeans項目中,我有一個TestClient類,它必須連接到我的遠程接口ShareBroker。 我的問題是如何爲java.rmi.server.codebase設置正確的地址,以及爲了查找ShareBrooker,我需要在我的TestClient中使用哪個地址。
我嘗試了一些不同的地址和組合,但無法得到這個工作。 對於此測試,我需要將代碼庫設置在本地目錄中。
java.rmi.server.codebase屬性在導出遠程對象的JVM上設置。通常這是服務器JVM。
代碼庫URL必須引用可由此服務器的客戶端訪問的目錄或JAR文件。因此,它必須是引用客戶端可訪問的Web服務器的HTTP或FTP URL或引用客戶端本地文件系統的文件:URL。 (1)服務器將不得不知道客戶端文件系統順序的佈局,以正確設置代碼庫屬性,這提出了配置難度,並且(2)所有這些將完成的事情是隻要將該本地目錄/ JAR文件包含在客戶端的CLASSPATH中,並將代碼庫系統完全取消就可以完成。
換句話說,代碼庫中絕對沒有指向本地文件系統的要點。
對於客戶端來訪問你應該有提供給可以在客戶端類路徑設置的client.This存根遠程服務(您可以在項目構建路徑中包含生成的存根)。
如果客戶端在其類路徑中沒有存根,則必須在遠程服務中設置java.rmi.server.codebase屬性。如果設置了該屬性,則當客戶端調用遠程方法時,它將下載指定的代碼庫中的存根類。
以下鏈接可能是有用的.. https://community.oracle.com/thread/1180559?start=0 http://docs.oracle.com/javase/7/docs/technotes/guides/rmi/codebase.html
那好吧,我不需要設置代碼庫...不過還是我爲什麼不能訪問的JAR文件? //192.168.0.6:40090/ShareBroker是我正在查看的地址,服務器在那裏監聽端口,我得到:異常$ Proxy0不能轉換爲ShareBroker – Giannis 2012-03-03 03:17:57
@latusaki什麼是'ShareBroker'?你真正的問題是什麼? – EJP 2012-03-03 08:50:55