目次||

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

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

java.rmi.activation.ActivateFailedException

起動可能オブジェクトへのリモート呼出しで起動に失敗したときに、RMIランタイムによりスローされる

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起動における例外

次に、起動可能オブジェクトに関連する動作でスローされる可能性がある、例外の一覧を示します。 起動APIはjava.rmi.activationパッケージに含まれています。

java.rmi.activation.ActivateFailedException

起動可能オブジェクトへのリモート呼出しで起動に失敗したときにRMIランタイムによってスローされる。

java.rmi.activation.ActivationException

起動インタフェースおよびクラスによって使用される一般的な例外クラス。

java.rmi.activation.UnknownGroupException

ActivationGroupIDパラメータまたはActivationGroupDescパラメータのActivationGroupIDが無効になったときに、起動クラスおよびインタフェースのメソッドによりスローされる。

java.rmi.activation.UnknownObjectException

ActivationIDパラメータが無効になったときに、起動クラスまたはインタフェースのメソッドによりスローされる。

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

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


Copyright © 1997, 2017, Oracle and/or its affiliates. All rights reserved.

目次||