Flex Gateway新着情報
Governance新着情報
Monitoring API ManagerAnypoint Code Builder プロジェクトで使用する Java Module を使用してカスタム Java コードを定義します。Anypoint Code Builder を使用して Java Module を設定するには、Anypoint Code Builder で基本インテグレーションプロジェクトを作成し、ビジネスロジックを処理する Mule アプリケーションにコネクタと他のコンポーネントを追加してから、Java Module の属性を設定します。
Anypoint Code Builder インテグレーションを作成する前に、次の作業を行う必要があります。
Anypoint Code Builder の Web またはデスクトップ IDE をセットアップしてアクセスします。
Anypoint Platform にアクセスするためのログイン情報を用意します。
Extension Pack for Java (Microsoft 提供) が Visual Studio Code にインストールされていることを確認します。
新しいインテグレーションプロジェクトを作成する手順は、次のとおりです。
IDE のアクティビティバーで、 (Anypoint Code Builder) アイコンをクリックします。
[Quick Actions (クイックアクション)] から [Develop an Integration (インテグレーションを開発)] をクリックします。
セクション内で強調表示されている [Develop an Integration (インテグレーションを開発)]リンク"]
[Develop an Integration (インテグレーションを開発)] フォームに以下を入力します。
属性 | 値 |
---|---|
Project Name (プロジェクト名) |
プロジェクトの一意の名前。 この名前はタイトルおよびインテグレーションプロジェクトファイルの名前として使用されます。
たとえば、プロジェクト名が「Salesforce Integration」 (Salesforce インテグレーション) の場合、プロジェクトファイル名は |
Project Location (プロジェクトの場所) |
ホームディレクトリまたは作成する別のディレクトリ。インテグレーションプロジェクト用の別のディレクトリを選択するには、[Browse (参照)] をクリックします。 別のプロジェクトディレクトリ内にプロジェクトを作成しないでください。 ホームディレクトリへのフォルダーの追加を参照してください。 |
[Empty Project (空のプロジェクト)] または [Template or Example (テンプレートまたはサンプル)] カードを選択して、作成するプロジェクトの種別を選択します。
アプリケーションの Mule Runtime および Java バージョンを選択します。
[Create Project (プロジェクトを作成)] をクリックします。
新しいインテグレーションプロジェクトを作成すると、Anypoint Code Builder によりプロジェクトに src/main/java
および /src/test/java
フォルダーが作成されます。既存のプロジェクトの場合、これらのフォルダーを手動で作成できます。
コンポーネントをインテグレーションプロジェクトに追加してフローをビルドします。
[Explorer] ビューで、目的のプロジェクトの XML ファイル (my-project-name.xml
など) を開きます。
開始カードで [Build a Flow (フローをビルド)] を選択して、空のフローを作成します。
、[build a flow (フローをビルド)]、[build a subflow (サブフローをビルド)] オプションが表示されている開始カードが含まれるキャンバス UI"]
フローの名前を変更します。
[Flow (フロー)] をクリックします。
編集アイコンをクリックします。
フロー名を入力し、チェックマークをクリックします。
キャンバス UI で ([Add component (コンポーネントを追加)]) アイコンをクリックします。
[Add Component (コンポーネントを追加)] パネルで、検索結果からコンポーネントを検索して選択します。次の例は、「HTTP」の検索結果の Listener コンポーネントを示しています。
セクション内で強調表示されている Listener コンポーネント"]
設定 XML ファイルで、HTTP リスナーの XML が <flow/>
要素に含まれるようになりました。次に例を示します。
<flow name="getFlights" >
<http:listener path="" config-ref="" doc:name="Listener" doc:id="ojzfry" />
</flow>
コンポーネントをインテグレーションプロジェクトに追加したら、コンポーネント UI で属性を設定するか、XML コードエディターで直接属性を設定します。
コネクタ XML タグは、名前空間で始まり操作が続く、構文 namespace:operation
に従います。たとえば、データベース用 Anypoint Connector (Database Connector) の Select 操作の場合、<db:select/>
となります。
コンポーネントの式 (fx) 項目のオートコンプリートを使用して、Core モジュールの DataWeave 関数やこの項目で使用できる他の値を選択できます。
トリガー (ソース) は、指定された条件が満たされたときにフローを開始します。コネクタに独自のソースが関連付けられている場合、コネクタ固有のトリガーを使用してフローを開始できます。各コネクタトリガーには、固有の設定があります。
このコネクタの以下のソースを設定できます。
[HTTP] > [Listener]
設定されたホストとポートで要求を受信するたびにフローを開始する
Scheduler
=== 新しい操作の設定
Java Module の New 操作を使用して新しいクラスインスタンスを作成します。コンストラクターの識別子にクラス名とコンストラクター名が含まれます。コンストラクターは、各パラメーターの型を含む署名の詳しい説明です。
たとえば、org.bar.Me
クラスに属する Me(String name, int age)
というコンストラクターを呼び出す場合、このメソッドの識別子は Me(String,int)
になります。
Anypoint Code Builder UI で New の属性を設定する手順は、次のとおりです。
キャンバスで [New] コンポーネントをクリックします。
[General (一般)] タブで次の手順を実行します。
[Class (クラス)] で、使用するメソッドが含まれる Java クラスを選択します。
プロジェクトで使用可能なすべての Java クラス (作成したクラスやネイティブ Java クラスなど) を検索できます。
[Constructor (コンストラクター)] で、使用するコンストラクターを検索して選択します。
この項目が空白の場合、更新アイコンをクリックして入力してください。 |
[Advanced (詳細)] タブを選択して、次の属性を設定します。
UI 項目 | 説明 | 必須 |
---|---|---|
Target variable (対象変数) |
クラスインスタンスを割り当てる変数の名前。 |
いいえ |
Target value (対象値) |
操作の出力を評価する式。式の結果は対象変数に保存されます。 |
いいえ |
エラーのマッピング |
Mule エラー種別をマップするカスタムエラー種別。マッピングは、アプリケーションのエラーをさらに識別してグループ化するのに役立つ場合があります。この属性は、XML エディターで設定します。Mule Errorsを参照してください。 |
いいえ |
[Input/Output (入力/出力)] タブを選択して、DataWeave に保存される入力変数と出力変数を絞り込んで表示します。
クラスインスタンスを追加したら、Invoke 操作を設定します。
指定したクラスインスタンスを使用して引数を指定したメソッドを呼び出します。呼び出すメソッドの識別子にはクラス名とメソッド名が含まれます。
Anypoint Code Builder UI で Invoke の属性を設定する手順は、次のとおりです。
キャンバスで [Invoke] コンポーネントをクリックします。
[General (一般)] タブで次の手順を実行します。
メソッドを呼び出すためのクラスインスタンスを選択します。
この値は New 操作に割り当てられる対象変数です。
[Class (クラス)] で、使用するメソッドが含まれる Java クラスを選択します。
プロジェクトで使用可能なすべての Java クラス (作成したクラスやネイティブ Java クラスなど) を検索できます。
[Method (メソッド)] で、使用するメソッドを検索して選択します。
クラスの静的メソッドのみが表示されます。
この項目が空白の場合、更新アイコンをクリックして入力してください。 |
[Advanced (詳細)] タブを選択して、次の属性を設定します。
UI 項目 | 説明 | 必須 |
---|---|---|
Output MIME type (出力 MIME タイプ) |
このコンポーネントで出力されるペイロードの MIME タイプ。 |
いいえ |
パラメーター |
リーダープロパティのキー-値ペアとして [Output MIME type (出力 MIME タイプ)] 属性の値に追加されるパラメーター。複数のキーと値のペアが許可されます。 |
いいえ |
Output encoding (出力エンコード) |
このコンポーネントで出力されるペイロードのエンコード。 |
いいえ |
Target variable (対象変数) |
操作の出力を保存する変数の名前。 |
いいえ |
Target value (対象値) |
操作の出力を評価する式。式の結果は対象変数に保存されます。 |
いいえ |
エラーのマッピング |
Mule エラー種別をマップするカスタムエラー種別。マッピングは、アプリケーションのエラーをさらに識別してグループ化するのに役立つ場合があります。この属性は、XML エディターで設定します。Mule Errorsを参照してください。 |
いいえ |
[Input/Output (入力/出力)] タブを選択して、DataWeave に保存される入力変数と出力変数を絞り込んで表示します。
指定した引数で静的メソッドを呼び出します。
Anypoint Code Builder UI で Invoke Static の属性を設定する手順は、次のとおりです。
キャンバスで [Invoke Static] コンポーネントをクリックします。
[General (一般)] タブで次の手順を実行します。
[Class (クラス)] で、使用するメソッドが含まれる Java クラスを選択します。
プロジェクトで使用可能なすべての Java クラス (作成したクラスやネイティブ Java クラスなど) を検索できます。
[Method (メソッド)] で、使用するメソッドを検索して選択します。
クラスの静的メソッドのみが表示されます。
この項目が空白の場合、更新アイコンをクリックして入力してください。 |
[Advanced (詳細)] タブを選択して、次の属性を設定します。
UI 項目 | 説明 | 必須 |
---|---|---|
Output MIME type (出力 MIME タイプ) |
このコンポーネントで出力されるペイロードの MIME タイプ。 |
いいえ |
パラメーター |
リーダープロパティのキー-値ペアとして [Output MIME type (出力 MIME タイプ)] 属性の値に追加されるパラメーター。複数のキーと値のペアが許可されます。 |
いいえ |
Output encoding (出力エンコード) |
このコンポーネントで出力されるペイロードのエンコード。 |
いいえ |
Target variable (対象変数) |
操作の出力を保存する変数の名前。 |
いいえ |
Target value (対象値) |
操作の出力を評価する式。式の結果は対象変数に保存されます。 |
いいえ |
エラーのマッピング |
Mule エラー種別をマップするカスタムエラー種別。マッピングは、アプリケーションのエラーをさらに識別してグループ化するのに役立つ場合があります。この属性は、XML エディターで設定します。Mule Errorsを参照してください。 |
いいえ |
[Input/Output (入力/出力)] タブを選択して、DataWeave に保存される入力変数と出力変数を絞り込んで表示します。
クラスインスタンスが、Validate Type 操作を使用する想定されるクラス (instanceof
) のインスタンスであることを確認します。
Anypoint Code Builder UI で Validate Type の属性を設定する手順は、次のとおりです。
キャンバスで [Validate type] コンポーネントをクリックします。
[General (一般)] タブで次の手順を実行します。
インスタンスが所属する [Class (クラス)] を選択します。
検証するクラスインスタンスの名前を入力します。
[Accept subtypes (サブタイプの受け入れ)] を選択して、クラスのサブタイプを受け入れます。
クラスインスタンスのクラスが同じである必要がある場合は、このオプションをオフにします。
アプリケーションフローで使用するメソッドが含まれる Java クラスを作成します。プロジェクトに作成するクラスは、Anypoint Code Builder ワークスペースの他のプロジェクトでは使用できません。
Anypoint Code Builder プロジェクトの src/main/java
の下に com.me
という新しい Java パッケージを作成します。
TaxCalculator.java
という新しい Java クラスを作成し、実装を追加します。次に例を示します。
package com.me;
public class TaxCalculator {
private Double percentBaseTax = 7.0;
public Double calculateTax(Double price, Integer percentAdditionalTax) {
return price * (this.percentBaseTax + percentAdditionalTax) / 100;
}
public Boolean isTaxFree(Double price) {
if (price < 10) {
return true;
}
return false;
}
}
このコードの例には 2 つのメソッドがあります。
calculateTax
。price
および percentAdditionalTax
パラメーターを受け取ります。
isTaxFree
。price
パラメーターを受け取ります。
キャンバス UI で [Listener] コンポーネントをクリックします。
必要に応じて、編集アイコンをクリックして Listener コンポーネントの名前を変更します。
コネクタの設定ファイルを選択するか、フローの外部の XML に HTTP 設定を追加します。次に例を示します。
<mule xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:doc="http://www.mulesoft.org/schema/mule/documentation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:http="http://www.mulesoft.org/schema/mule/http"
xmlns:java="http://www.mulesoft.org/schema/mule/java" xsi:schemaLocation="http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
http://www.mulesoft.org/schema/mule/java http://www.mulesoft.org/schema/mule/java/current/mule-java.xsd">
<http:listener-config name="HTTP_listener_config">
<http:listener-connection host="0.0.0.0" port="8081" />
</http:listener-config>
<flow name="name1">
<http:listener path="/calculatePath" config-ref="HTTP_listener_config" doc:name="Listener" doc:id="511e4743-a5ed-4e74-8174-ead32ff575ea" allowedMethods="POST" />
</flow>
</mule>
[General (一般)] タブの [Path (パス)] 項目に「/calculateTax」
と入力します。
[Advanced (詳細)] タブで [Allowed methods (許可されるメソッド)] を POST
に設定します。
この例で使用するメソッドは非静的のため、新しいクラスインスタンスを作成する必要があります。
キャンバスで [New] コンポーネントをクリックします。
[General (一般)] タブで次の手順を実行します。
使用するメソッドが含まれる [Class (クラス)] を選択します。この場合は com.me.TaxCalculator
です。
使用する [Method (メソッド)] を選択します。この場合は TaxCalculator()
です。
この項目が空白の場合、更新アイコンをクリックして入力してください。 |
[Advanced (詳細)] タブで、新しいクラスインスタンスを taxCalculator
という対象変数に割り当てます。
コードは次のようになります。
<?xml version="1.0" encoding="UTF-8"?>
<mule xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:doc="http://www.mulesoft.org/schema/mule/documentation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:java="http://www.mulesoft.org/schema/mule/java" xmlns:http="http://www.mulesoft.org/schema/mule/http" xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core" xsi:schemaLocation="http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/java http://www.mulesoft.org/schema/mule/java/current/mule-java.xsd
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
http://www.mulesoft.org/schema/mule/ee/core http://www.mulesoft.org/schema/mule/ee/core/current/mule-ee.xsd">
<http:listener-config name="HTTP_Listener_config">
<http:listener-connection host="0.0.0.0" port="8081" />
</http:listener-config>
<flow name="java1">
<http:listener doc:name="Listener" config-ref="HTTP_Listener_config" path="/calculateTax" allowedMethods="POST"/>
<java:new class="com.me.TaxCalculator" constructor="TaxCalculator()" target="taxCalculator" />
</flow>
</mule>
メソッドを呼び出すには、Invoke 操作を追加します。
キャンバスで [Invoke] コンポーネントをクリックします。
[General (一般)] タブで次の手順を実行します。
メソッドを呼び出すためのクラスインスタンスとして「#[vars.taxCalculator]」
と入力します。
使用するメソッドが含まれる [Class (クラス)] を選択します。この場合は com.me.TaxCalculator
です。
使用する [Method (メソッド)] を選択します。この場合は calculateTax(java.lang.Double,java.lang.Integer)
です。
表示されているメソッドは標準の非静的 Java メソッドと、作成したメソッドです。
[Advanced (詳細)] タブで、Invoke 操作を taxResult
という対象変数に割り当てます。
XML エディターで Java 引数を DataWeave 式として追加します。
<java:args>#[{
arg0: payload:price,
arg1: payload:percentAdditionalTax
}]</java:args>
XML コードは次のようになります。
<?xml version="1.0" encoding="UTF-8"?>
<mule xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:doc="http://www.mulesoft.org/schema/mule/documentation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:java="http://www.mulesoft.org/schema/mule/java" xmlns:http="http://www.mulesoft.org/schema/mule/http" xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core" xsi:schemaLocation="http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/java http://www.mulesoft.org/schema/mule/java/current/mule-java.xsd
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
http://www.mulesoft.org/schema/mule/ee/core http://www.mulesoft.org/schema/mule/ee/core/current/mule-ee.xsd">
<http:listener-config name="HTTP_Listener_config">
<http:listener-connection host="0.0.0.0" port="8081" />
</http:listener-config>
<flow name="java1">
<http:listener doc:name="Listener" config-ref="HTTP_Listener_config" path="/calculateTax" allowedMethods="POST"/>
<java:new class="com.me.TaxCalculator" constructor="TaxCalculator()" target="taxCalculator" />
<java:invoke instance="#[vars.taxCalculator]" class="com.me.TaxCalculator" method="calculateTax(Double, Integer)" target="taxResult">
<java:args>#[{
arg0: payload.price,
arg1: payload.percentAdditionalTax
}]</java:args>
</java:invoke>
</flow>
</mule>
メッセージのペイロードを更新するには、Set Payload (set-payload
) コンポーネントを使用します。ペイロードは、文字列リテラルまたは DataWeave 式です。
キャンバス UI で ([Add component (コンポーネントを追加)]) アイコンをクリックします。
[Add Component (コンポーネントを追加)] パネルで、「Set Payload
」を検索して選択します。
[Set Payload] コンポーネントをクリックします。
[General (一般)] タブで、[Value (値)] に「#[vars.taxResult as String]
」と入力します。
[Encoding (エンコード)] で [ISO 10646/Unicode(UTF8)] を選択します。
[Mime type (MIME タイプ)] で [text/plain (テキスト/プレーン)] を選択します。
XML コードは次のようになります。
<?xml version="1.0" encoding="UTF-8"?>
<mule xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:doc="http://www.mulesoft.org/schema/mule/documentation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:java="http://www.mulesoft.org/schema/mule/java" xmlns:http="http://www.mulesoft.org/schema/mule/http" xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core" xsi:schemaLocation="http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/java http://www.mulesoft.org/schema/mule/java/current/mule-java.xsd
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
http://www.mulesoft.org/schema/mule/ee/core http://www.mulesoft.org/schema/mule/ee/core/current/mule-ee.xsd">
<http:listener-config name="HTTP_Listener_config">
<http:listener-connection host="0.0.0.0" port="8081" />
</http:listener-config>
<flow name="java1">
<http:listener doc:name="Listener" config-ref="HTTP_Listener_config" path="/calculateTax" allowedMethods="POST"/>
<java:new class="com.me.TaxCalculator" constructor="TaxCalculator()" target="taxCalculator" />
<java:invoke instance="#[vars.taxCalculator]" class="com.me.TaxCalculator" method="calculateTax(Double, Integer)" target="taxResult">
<java:args>#[{
arg0: payload.price,
arg1: payload.percentAdditionalTax
}]</java:args>
</java:invoke>
<set-payload value="#[vars.taxResult as String]" doc:name="Set payload" doc:id="kyujdh" mimeType="text/plain" encoding="UTF-8"/>
</flow>
</mule>
デバッグ条件を設定したら、デバッグセッションを実行し、各ブレークポイントで Mule アプリケーションを評価します。
[Run and Debug (実行とデバッグ)] パネルを開きます。
アクティビティバーの (Run and Debug (実行とデバッグ)) アイコンをクリックする。
キーボードショートカットを使用する。
Mac: Cmd+Shift+d
Windows: Ctrl+Shift+d
デスクトップ IDE で、[View (表示)] > [Run (実行)] を選択する。
クラウド IDE で、 (メニュー) アイコンをクリックし、[View (表示)] > [Run (実行)] を選択する。
[Debug Mule Application (Mule アプリケーションをデバッグ)] の (Start Debugging (F5) (デバッグを開始 (F5))) アイコンをクリックします。
または、[Start Debugging (F5) (デバッグを開始 (F5))] アイコンが存在しない場合は、次の手順を実行します。
[Run and Debug (実行とデバッグ)] をクリックします。
[Select debugger (デバッガーを選択)] ドロップダウンメニューが表示された場合は、[Mule XML Debugger (Mule XML デバッガー)] を選択してデバッグセッションを開始します。
アプリケーションが正常にデプロイされると、出力パネルに DEPLOYED
ログメッセージが表示されます。
********************************************************************** * - - + DOMAIN + - - * - - + STATUS + - - * ********************************************************************** * default * DEPLOYED * **********************************************************************
[Run (実行)] > [Start without Debugging (デバッグなしで実行)] を選択すると、エラーが発生します。 |
Anypoint Code Builder でアプリケーションがパッケージ化され、埋め込み Mule Runtime Engine にデプロイされます。 ターミナルが開き、状況を参照できます。
ターミナルにメッセージが表示されます。ステータスバーが赤に変わり、アプリケーションが実行中であることが示されます。
デバッグツールバーのボタンを使用して、Mule アプリケーションのデバッグを制御します。