機械翻訳について

A RMIの例外


A.1 リモート・オブジェクトのエクスポートにおける例外

UnicastRemoteObjectを拡張するリモート・オブジェクト・クラスが作成されたときは、そのオブジェクトはエクスポートされます。これは、このオブジェクトが外部のJava仮想マシンからの呼出しを受け取ることができ、RMI呼出しにおいてパラメータまたは戻り値として渡せることを意味します。 オブジェクトは、匿名ポートまたは指定されたポートのどちらにでもエクスポートできます。 UnicastRemoteObjectの拡張でないオブジェクトでは、java.rmi.server.UnicastRemoteObject.exportObjectを使用してオブジェクトを明示的にエクスポートします。

java.rmi.StubNotFoundException

スタブのクラスが見つからない。

スタブが次のどちらかのエラーを起こし、同じ名前のクラスと名前の競合を起こした。

codebaseが間違っているためURLが正しくない。

スタブのクラスが正しくない。

java.rmi.server.SkeletonNotFoundException

ノート: この例外は、Java 2 SDK、Standard Edition、v1.2で非推奨です

スケルトンのクラスが見つからない。

スケルトンが次のどちらかのエラーを起こし、同じ名前のクラスと名前の競合を起こした

codebaseが間違っているためURLが正しくない。

スケルトンのクラスが正しくない。

java.rmi.server.ExportException

ポートがほかのVMに使われている。

A.2 RMI呼出しにおける例外

java.rmi.UnknownHostException

未知のホスト。

java.rmi.ConnectException

ホストへの接続が拒否された。

java.rmi.ConnectIOException

接続作成時の入出力エラー。

java.rmi.MarshalException

トランスポート・ヘッダー、呼出しヘッダー、引数整列時の入出力エラー。

java.rmi.NoSuchObjectException

利用できないオブジェクト上のメソッドを呼び出そうとした。

java.rmi.StubNotFoundException

リモート・オブジェクトがエクスポートされていない。

A.3 リターン中の例外とエラー

java.rmi.UnmarshalException

次の操作時にストリームが破壊され、入出力エラーまたはプロトコル・エラーが発生した

戻り値のクラスが見つからない。

java.rmi.UnexpectedException

メソッド・シグニチャに記載されていない例外が発生(実行時例外を除く)。 UnexpectedException例外オブジェクトはサーバーによってスローされた基底の例外を含む。

java.rmi.ServerError

サーバーがリモート・メソッドを実行中に発生するエラーのどれか。 ServerError例外オブジェクトには、サーバーによってスローされた基本エラーが含まれています。

java.rmi.ServerException

この例外は、サーバー上での呼出し処理の実行中にRemoteExceptionがスローされた場合に、リモート・メソッド呼び出し(引数の非整列化またはリモート・メソッド自体)の結果としてスローされる。 例については、「セクションA.3.1 java.rmi.ServerExceptionが発生する原因」を参照してください。

java.rmi.ServerRuntimeException

ノート: この例外は、Java 2 SDK、Standard Edition、v1.2で非推奨です

Java 2 SDK, Standard Edition, v1.2と互換性のあるバージョンが動作しているサーバーは、この例外をスローしない。 RuntimeExceptionがクライアントにそのまま伝えられる。

A.3.1 java.rmi.ServerExceptionが発生する原因

サーバーが自身でリモート・メソッド呼出しを実行中にサーバー上で発生する可能性がある、基になる例外があります。 これらの例外はjava.rmi.ServerExceptionにラップされます。つまり、java.rmi.ServerExceptionにはクライアントが抽出する元の例外が含まれます。 これらの例外はServerExceptionによってラップされるので、クライアントはサーバー上での自身のリモート・メソッド呼出しは失敗しなかったけれども、サーバーが行った2番目のリモート・メソッド呼出しが失敗したことはわかります。

java.rmi.server.SkeletonMismatchException

ノート: この例外はJava 2 SDK、Standard Edition、v1.2以降では非推奨です

スタブとスケルトンのハッシュ不一致。

java.rmi.UnmarshalException

java.rmi.MarshalException

戻り値を整列化中のプロトコル・エラー。

java.rmi.RemoteException

RemoteExceptionはサーバーからのリモート呼出しの結果として発生する。

A.4ネーミングにおける例外

次の表はjava.rmi.Namingクラスとjava.rmi.registry.Registryインタフェースのメソッドで発生する例外を示したものです。

java.rmi.AccessException

操作を拒否された。 レジストリはバインド、リバインドおよびアンバインドを同一ホスト上に限定する。 lookupは任意のホストからでも実行可能。

java.rmi.AlreadyBoundException

すでにバインドされている名前をバインドしようとした。

java.rmi.NotBoundException

バインドされていない名前を検索しようとした。

java.rmi.UnknownHostException

未知のホスト上のレジストリにコンタクトしようとした。

A.5起動における例外

アクティブ化メカニズムがシステムから削除されました。

A.6それ以外の例外

java.rmi.RMISecurityException

ノート: この例外はJava 2 SDK、Standard Edition、v1.2以降では非推奨です

RMISecurityManagerによってスローされたセキュリティ例外。

java.rmi.server.ServerCloneException

複製(コピー)に失敗した。

java.rmi.server.ServerNotActiveException

リモート・サーバーがリモート・メソッドで実行されていない時にRemoteServer.getClientHostメソッドによってクライアント・ホストを取得しようとした。

java.rmi.server.SocketSecurityException

不法なポートからオブジェクトをエクスポートしようとした。