Hitachi

TPBroker Version 5 トランザクショナル分散オブジェクト基盤 TPBroker 運用ガイド


13.2 コンパイル時の対応

java2iiopコマンド実行時に,次のメッセージが標準エラー出力に出力された場合,クライアントスタブやサーバスケルトンなどの生成に失敗します。

java2iiop: fatal error: internal problem; please contact Inprise Customer Support

次の手順に従ってください。

  1. java2iiopコマンドを-XXX_debugオプションを付けて実行してください。

    (例)

    > java2iiop -XXX_debug HelloRemote
  2. java.lang.reflect.InaccessibleObjectException例外のメッセージが,標準エラー出力に出力されます。例外メッセージからモジュール名とパッケージ名を見つけてください。

    (例外メッセージの例)

    java2iiop: fatal error: internal problem: unexpected exception: java.lang.reflect.InaccessibleObjectException: Unable to make field private final java.util.List aaa.bbb.Ccc.ddd accessible: module xxx.yyy does not "opens aaa.bbb" to unnamed module @735b478
    モジュール名とパッケージ名は,メッセージ中の「accessible: module」の直後に以下の形式で出力されています。

    accessible: module モジュール名

    does not "opens パッケージ名"

    例外メッセージの例の場合,モジュール名は「xxx.yyy」,パッケージ名は「aaa.bbb」となります。

  3. 手順2.で見つけたモジュール名とパッケージ名を--add-opensオプションに指定して,java2iiopコマンドを実行してください。

    (例)

    > java2iiop -J--add-opens=xxx.yyy/aaa.bbb=ALL-UNNAMED -XXX_debug HelloRemote
  4. java.lang.reflect.InaccessibleObjectException例外が発生しなくなるまで,手順2.〜手順3.を繰り返して--add-opensオプションをjava2iiopコマンドに追加してください。

    (例)

    > java2iiop -J--add-opens=xxx.yyy/aaa.bbb=ALL-UNNAMED -J--add-opens=xxx.yyy/ccc.ddd=ALL-UNNAMED -XXX_debug HelloRemote
  5. java.lang.reflect.InaccessibleObjectException例外が発生しなくなった場合,java2iiopコマンドから-XXX_debugオプションの指定を削除してください。