2012-05-18 71 views
-1

我無法使編譯器找到我想要的類正是這樣的: ctx.rebind("MyInterfaceImplementacja", ref);。我能請你糾正我嗎?RMI中的ClassNotFoundException Java

package Pakiet; 
import java.rmi.Remote; 
import java.rmi.RemoteException; 

public interface MyInterface extends Remote { 
public String echo(String napis) throws RemoteException; 
public int dodaj(int wrt1, int wrt2) throws RemoteException; 
} 

package Pakiet; 

import java.rmi.RemoteException; 
import javax.rmi.PortableRemoteObject; 

public class MyInterfaceImplementacja extends PortableRemoteObject implements MyInterface { 
    protected MyInterfaceImplementacja() throws RemoteException { 
    super(); 
    } 

    @Override 
    public String echo(String napis) throws RemoteException { 
    return "echo" + napis; 
    } 

    @Override 
    public int dodaj(int wrt1, int wrt2) throws RemoteException { 
    return wrt1 + wrt2; 
    } 
} 

public class MyInterfaceSerwer { 
    public static void main(String[] args) { 
    try{ 
     MyInterfaceImplementacja ref = new MyInterfaceImplementacja(); 
     Context ctx = new InitialContext(); 
     ctx.rebind("MyInterfaceImplementacja", ref);  
    }catch(Exception e){e.printStackTrace();} 
    } 
} 
+1

這幾乎是[相同的問題(http://stackoverflow.com/q/10648026/509303)你問了幾分鐘後或更早版本。等待答案,而不是垃圾郵件問題。 – buc

+0

您是否收到編譯錯誤或運行時異常? – EJP

回答

0

試一下這個

  1. 擴展實現類的UnicastRemoteObject,而不是PortableRemoteObject。

  2. 使用RMI在這樣

    ctx.rebind你重新綁定方法( 「RMI:MyInterfaceImplementacja」,REF);

保持這個準則以下爲將來使用

下投票

如果你想實現RMI。請按照下列步驟操作 試試這個.... 在服務器端:

  1. 創建它擴展java.rmi.Remote接口//由客戶端和服務器

  2. 創建實現類的共享接口接口,並將其擴展爲UnicastRemoteObject

  3. 現在創建具有rebind方法的Server類。

    在客戶端:

  4. 創建延伸java.rmi.Remote接口//由客戶端和服務器

  5. 創建具有所述查找方法Client類共享接口。

    如: 服務器上

    Car.java //接口

    CarImpl.java //實現類

    CarServer.java //服務器類

    客戶端

    Car.java //接口

    CarClient.java //客戶端類

+0

-1。這將如何解決這個問題?他爲什麼要做(1)? (2)與他寫的有什麼不同?你的第二(1)與他寫的有什麼不同?你的第二個(1)與(4)不同? – EJP

+0

我想你錯過了我在兩者之間寫的幾行。第一點和第二點提示他需要做什麼......後面的第一點到第五點是供他未來參考的。此外,因爲他沒有提到rmi:MyInterfaceImplementacja,它在查找期間產生問題。我再次敦促您在對此進行評論前仔細閱讀完整的解決方案。 –

+0

我沒有遺漏,你什麼也沒有回答。你幾乎不會在中間寫任何東西,也沒有什麼能回答我的任何問題。他不必切換到UnicastRemoteObject來解決這個問題;他已經完成了其他幾個步驟;你的許多建議僅僅是重複的;再次,這將如何解決實際問題?什麼*是*你認爲所有這些解決的實際問題? – EJP