2015-04-28 86 views
0

當我跑我的RMI應用它的工作,但是當我嘗試不同的PC與我收到此錯誤不同的地址在我的代碼:註冊表RMI找不到stub類

java.rmi.UnmarshalException: error unmarshalling return; nested exception is:

java.lang.ClassNotFoundException: zz.INTERFCE at sun.rmi.registry.RegistryImpl_Stub.lookup(Unknown Source) at java.rmi.Naming.lookup(Unknown Source) at CLIENT$2.actionPerformed(CLIENT.java:112) . . .

好的。這是我的代碼:我的應用程序寬:服務器

      try { 
         System.setProperty("java.security.policy","C:\\DERNIER\\src\\security.policy"); 
     System.setSecurityManager(new RMISecurityManager()); 

        registre = LocateRegistry.createRegistry(Integer.parseInt(textport.getText())); 
        IMPLIEMENT obj=new IMPLIEMENT(); 
        registre.rebind("Hello1",obj); 
        list1.add("serveur is lisning"); 
        cpt++; 
       } catch (RemoteException e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
       } 

客戶端

   try { 

        user=txtUN.getText(); 
        client=new CLIENT_IMPLMENT(rsa,user); 

        hello= (INTERFCE) Naming.lookup("rmi://"+textadressz.getText()+":"+Integer.parseInt(txtport.getText())+"/Hello1");   
        hello.connecté((CLIENT_INTERFCE)client,user,rsa.getN(),rsa.getE()); 
        cpt++; 

       } catch (RemoteException | MalformedURLException | NotBoundException e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
       } 

PS的 側ork在localhoste的罰款

+0

分享您的代碼PLZ。 –

回答

1

你錯誤地說明了問題。未找到的課程是zz.INTERFCE。這不是一個存根。它實際上似乎是一個遠程接口。它需要在客戶端進行部署。否則客戶無論如何都無法做任何事情。

+0

ZZ是包括服務器端的接口功能套餐的客戶能夠到達pakage但他無法到達存根,這是我的無論如何?? –

+0

我不知道你爲什麼猜測,當我告訴你答案。'達到包'是沒有意義的。如果'zz'是包含服務器端接口的包'意味着你已經將接口複製到兩個包中,那就是問題所在。它必須是相同的接口,相同的名稱,相同的包,相同的定義。最好是相同的.class文件。 – EJP

+0

謝謝你的配合我的朋友,最後可能應用正在工作謝謝你的幫助 –

0

看來,你必須有包裝對雙方相同的名稱(客戶端和服務器。

+0

這不會提供問題的答案。要批評或要求作者澄清,在他們的帖子下留下評論 - 你總是可以評論你自己的帖子,一旦你有足夠的[聲譽](http://stackoverflow.com/help/whats-reputation),你會能夠[評論任何帖子](http://stackoverflow.com/help/privileges/comment)。 –

+0

@ErwinBolwidt其實它雖然含糊不清地表達。 – EJP

+0

好吧,也許。正如我所看到的,它只是陳述了一些事情,並沒有試圖解決OP的問題,所以它應該是一個評論。而且它所表達的東西似乎(至少不是來自OP的問題)相關,因爲沒有跡象表明包名在客戶端和服務器上是不同的。 –