-1

コンパイラに必要なクラスを見つけさせることはできません。まさにこれです ctx.rebind("MyInterfaceImplementacja", ref);。訂正してもらえますか?

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();}
  }
}
4

1 に答える 1

0

これを試して

  1. ImplementationクラスをPortableRemoteObjectではなくUnicastRemoteObjectに拡張します。

  2. このようにrebindメソッドで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//サーバークラス

    CLIENTについて

    Car.java//インターフェース

    CarClient.java//クライアントクラス

于 2012-05-18T07:31:31.980 に答える