ページの先頭行へ戻る
Interstage Business Application Server アプリケーション開発ガイド
FUJITSU Software

5.2.8 呼出し対象のメソッド定義チェック(Java)

Javaの場合、[メソッド定義チェック]ダイアログボックスを利用して、フロー定義ファイルのJavaのアクティビティ定義で定義されている呼出し対象のメソッドが、Javaクラス(Javaの業務処理実行アプリケーション)に漏れなく反映されているかを確認することができます。

呼出し対象のメソッドとは、Javaのアクティビティ定義内にある[呼出し定義]で定義されているメソッドのことです。メッセージを受信した際に呼び出すJavaの業務処理実行アプリケーションのメソッド、および補償処理用アプリケーションのメソッドに対応しています。
詳細については、“5.2.4.3 アクティビティの設定”の“◆呼出し定義”、および“5.2.4.7 補償ルートの設定”の“◆補償処理用アプリケーションの呼出し定義”を参照してください。

Javaの業務処理実行アプリケーションについては、“5.3 業務処理実行アプリケーションの作成”を参照してください。


チェックの内容を以下に示します。

アプリケーション連携フロープロジェクトに格納されている複数のフロー定義ファイルの内容を一括してチェックすることができます。
チェック対象のJavaクラスは、アプリケーション連携フロープロジェクトのJavaのビルドパスとして設定されている範囲になります。ビルドパスはプロジェクトのプロパティで参照することが可能です。アプリケーション連携フロープロジェクトを選択し、プロジェクトのコンテキストメニューから[プロパティ]を選択します。[プロパティ]ダイアログボックスの左のペインで[Javaのビルドパス]を選択してください。

Javaのビルドパス

チェック対象のJavaソース

ソース

アプリケーション連携フロープロジェクト内のJavaソースファイル

プロジェクト

他アプリケーション連携フロープロジェクトで定義されているJavaソースファイルを参照します。

ライブラリ

JARファイル内のJavaクラスもチェック対象にすることができます。

ポイント

  • Interstage Studio内の他アプリケーション連携フロープロジェクトで定義されているJavaソースファイルをチェックの対象にする場合は、[プロジェクト]タブにある[ビルドパス上に必要なプロジェクト]から対象のプロジェクトを選択してください。

  • JARファイル内のJavaクラスをチェックの対象にする場合は、[ライブラリ]タブにある[ビルドパス上のJarおよびクラスフォルダ]に、[Jarの追加]から対象のJARファイルを指定して追加してください。

注意

同名のJavaクラスが複数存在した場合は、[順序およびエクスポート]タブで指定された順序で最初に検出されたJavaクラスが対象になります。

[Javaのビルドパス]の詳細については、Interstage Studioのヘルプ一覧から“Java開発ユーザガイド”の“概念”の“Javaビルダ”を参照してください。

チェック対象のJavaクラスに呼出し対象のメソッドが見つからなかった場合、その基底クラスもチェックします。

メソッドの定義チェック

フロー定義ファイルに定義されている呼出し対象のメソッドをチェックする手順を以下に示します。

  1. メニューバーの[フロー定義] > [メソッド定義チェック(Java)]を選択します。またはプロジェクトのコンテキストメニューの[メソッド定義チェック(Java)]を選択します。[呼出し対象のメソッド定義チェック(Java)]ダイアログボックスが表示されます。

  2. チェックするフロー定義ファイルを選択します。

    [フロー定義ファイル]からチェックするフロー定義ファイルを選択します。
    メニューバーの[フロー定義] > [メソッド定義チェック(Java)]を選択した場合は、アクティブなエディタで編集中のフロー定義ファイルがチェックされています。
    プロジェクトのコンテキストメニューの[メソッド定義チェック(Java)]を選択した場合は、すべてのフロー定義ファイルがチェックされています。

    [すべて選択]をクリックすると、[フロー定義ファイル]に表示されているすべてのフロー定義ファイルをチェックします。
    [すべて解除]をクリックすると、[フロー定義ファイル]に表示されているすべてのフロー定義ファイルのチェックを外します。

  3. [開始]をクリックします。呼出し対象のメソッドの存在チェック処理を実行します。
    チェック処理中は、以下のような進行状況を表示するダイアログボックスが表示されています。



    [キャンセル]をクリックするとチェック中のフロー定義ファイルのチェック処理を終了した後、処理を中断します。

    注意

    キャンセルまでに検出したエラーはチェック結果表示画面上に表示されます。チェック処理でエラーが検出されなかった場合は、エラーが検出されなかったことを通知するメッセージを表示します。

  4. メソッドチェック処理が終了し、エラーを検出した場合は、[呼出し対象のメソッド定義チェック結果(Java)]ダイアログボックスが表示されます。

    検出したエラーを一覧表示します。[定義エラー]一覧に以下の情報を表示します。

    • [フロー定義ファイル名]
      チェックしたフロー定義ファイル名を表示します。

    • [アクティビティ]
      フロー定義ファイルに定義されたアクティビティを表示します。

    • [クラス名]
      [呼出し定義]で定義されているクラスを表示します。
      パッケージ名を含むクラス名を表示します。

    • [メソッド名]
      [呼出し定義]で定義されている呼出し対象のメソッドを表示します。
      引数、復帰値を含むメソッド名を表示します。

    • [結果]
      エラーの詳細を表示します。

      ポイント

      一覧内で行を選択し、右クリックしてコンテキストメニューから[コピー]を選択すると、選択した行の内容をコピーすることができます。

    フロー定義ファイルの読み込みでエラーがある場合は、[アクティビティ]、[クラス名]および[メソッド名]は空白になります。
    定義チェックでクラスに誤りがある場合は、[メソッド名]は空白になります。

    [結果]に表示されているエラーの詳細について、種類を以下に示します。

    結果

    対処

    フロー定義ファイルの読み込みに失敗しました。

    フロー定義ファイルの読み込み時に問題を検出しています。
    ファイルの存在、アクセス権を確認してください。
    ファイルに問題ない場合は、フロー定義が壊れているため使用できません。

    フロー定義ファイルの構文解析でエラーが発生しました。

    フロー定義が正しくありません。

    フロー定義ファイルに定義エラーを検出しています。
    フロー定義エディタで編集し、エラーを取り除いてください。

    クラスが定義されていません。

    [呼出し定義]に定義されているクラスが見つかりませんでした。
    該当クラスを作成してください。
    他プロジェクトやJARファイルに定義済みの場合は、ビルドパスに参照先を指定するとエラーの検出はなくなります。

    クラスがpublicで宣言されていません。

    [呼出し定義]に定義されているクラスが、publicではないクラスとして作成されている可能性があります。
    該当クラスのアクセス修飾子がpublicかどうか確認してください。

    クラスではなくインタフェースです。

    [呼出し定義]に定義されているクラスが、インタフェースとして作成されている可能性があります。
    実装のあるクラスに定義し直してください。

    クラスがabstractで宣言されています。

    [呼出し定義]に定義されているクラスが、abstractクラスとして作成されている可能性があります。
    実装のあるクラスに定義し直してください。

    メソッドが定義されていません。

    [呼出し定義]に定義されているメソッドが、チェック対象のJavaクラス内に見つかりませんでした。
    基底クラスで、public以外で定義されていた場合、基底クラスで、abstractで定義されていた場合も、このエラーとなります。
    該当メソッドを定義してください。

    メソッドがpublicで宣言されていません。

    [呼出し定義]に定義されているメソッドが、チェック対象のJavaクラス内にpublicではないメソッドとして作成されている可能性があります。
    該当メソッドのアクセス修飾子がpublicかどうか確認してください。

    メソッドがabstractで宣言されています。

    [呼出し定義]に定義されているメソッドが、チェック対象のJavaクラス内にabstractメソッドとして作成されている可能性があります。
    該当メソッドを実装してください。

    メソッドがnativeで宣言されています。

    [呼出し定義]に定義されているメソッドが、チェック対象のJavaクラス内にnativeメソッドとして作成されている可能性があります。
    チェック対象のJavaクラスを確認し、実装のあるメソッドに定義し直してください。

    メソッドの復帰値が異なります。

    [呼出し定義]に定義されているメソッドは、チェック対象のJavaクラス内にすでに作成されていますが、復帰値が異なっている可能性があります。
    Javaクラスに、同じシグネチャ(メソッド名、引数の数、引数の型の組み合わせ)で復帰値が異なるメソッドは定義できません。[呼出し定義]、またはチェック対象のJavaクラスのメソッド定義に誤りがある可能性があります。メソッドの復帰値とシグネチャを確認してください。

    Javaのアクティビティ定義が存在しないフロー定義です。

    Javaのアクティビティ定義が存在しないフロー定義を選択して、メソッド定義チェックを行っています。Javaのアクティビティ定義が存在するフロー定義を選択してチェックを行ってください。

    注意

    チェック対象のJavaクラスにエラーがある場合、正常なチェック結果が得られない場合があります。ビルドエラーを取り除いてからチェックを実施してください。JavaソースをJavaエディタで編集する詳細については、Interstage Studioのヘルプ一覧から“Java開発ユーザガイド”の“概念”の“Javaエディタ”を参照してください。

    以下に例を示します。
    public Map method11(Map arg0)というメソッドが定義されているJavaソースに、import java.util.Mapが宣言されていない場合、java.util.Mapを認識することができず、「メソッドが定義されていません。」というエラーが表示されます。
    java.util.Mapをインポートし、Javaソースからエラーを取り除いてから、再度チェックを実行してください。

    また、メソッド定義チェックの対象外となるアクティビティ定義を含むフロー定義ファイルを選択していた場合、以下の情報が[結果]に表示されます。

    結果

    詳細

    Javaのアクティビティ定義が存在しないフロー定義です。

    Javaのアクティビティ定義が存在しないフロー定義ファイルを選択した場合に表示されます。
    Javaのアクティビティ定義がフロー定義ファイル内に存在しないため、メソッド定義チェックの対象外であることを示します。

  5. [閉じる]をクリックすると、[チェック結果]ダイアログボックスを閉じます。

  6. メソッドチェック処理でエラーが検出されなかった場合は、[チェック結果]ダイアログボックスは表示されず、以下のメッセージダイアログボックスが表示されます。