第12章 事前定義されたアクション
12.1. トランスフォーマーとコンバーター
MessagePayloadProxy を使用します。
12.1.1. ByteArrayToString
| 入力タイプ | byte[ ] |
| クラス | org.jboss.soa.esb.actions.converters.ByteArrayToString |
byte[] ベースのメッセージペイロードを取得して java.lang.String オブジェクトインスタンスに変換します。
表12.1 ByteArrayToString のプロパティ
| プロパティ | 説明 | 必須 |
|---|---|---|
| encoding |
メッセージバイト配列のバイナリデータエンコーディング。デフォルトは
UTF-8。
| No |
例12.1 設定例
<action name="transform" class="org.jboss.soa.esb.actions.converters.ByteArrayToString">
<property name="encoding" value="UTF-8" />
</action>
12.1.2. LongToDateConverter
|
入力タイプ
| java.lang.Long/long
|
|
出力タイプ
| java.util.Date
|
|
クラス
| org.jboss.soa.esb.actions.converters.LongToDateConverter
|
java.util.Date オブジェクトインスタンスに変換します。
例12.2 設定例
<action name="transform" class="org.jboss.soa.esb.actions.converters.LongToDateConverter">
12.1.3. ObjectInvoke
| 入力タイプ | ユーザーオブジェクト |
| 出力タイプ | ユーザーオブジェクト |
| クラス | org.jboss.soa.esb.actions.converters.ObjectInvoke |
表12.2 ObjectInvoke のプロパティ
| プロパティ | 説明 | 必須 |
|---|---|---|
| class-processor |
メッセージペイロードの処理に使用されるプロセッサークラスのランタイムクラス名です。
| Yes |
| class-method |
メソッドを処理すために使用されるプロセッサークラスのメソッド名。
| No |
例12.3 設定例
<action name="invoke" class="org.jboss.soa.esb.actions.converters.ObjectInvoke">
<property name="class-processor" value="org.jboss.MyXXXProcessor"/>
<property name="class-method" value="processXXX" />
</action>
12.1.4. ObjectToCSVString
| 入力タイプ | ユーザーオブジェクト |
| 出力タイプ | java.lang.String |
| クラス | org.jboss.soa.esb.actions.converters.ObjectToCSVString |
表12.3 ObjectToCSVString プロパティ
| プロパティ | 説明 | 必須 |
|---|---|---|
| bean-properties |
出力 CSV 文字列のために CSV 値を取得するために使用するオブジェクト Bean プロパティ名の一覧。オブジェクトは一覧の各プロパティに対して getter メソッドをサポートする必要があります。
| Yes |
| fail-on-missing-property |
プロパティがオブジェクトで不明な場合 (つまり、オブジェクトがプロパティの getter メソッドをサポートしない場合) にアクションが失敗するかどうかを示すフラグ。デフォルト値は
false です。
| No |
例12.4 設定例
<action name="transform"
class="org.jboss.soa.esb.actions.converters.ObjectToCSVString">
<property name="bean-properties"
value="name,address,phoneNumber"/>
<property name="fail-on-missing-property"
value="true" />
</action>12.1.5. ObjectToXStream
| 入力タイプ | ユーザーオブジェクト |
| 出力タイプ | java.lang.String |
| クラス | org.jboss.soa.esb.actions.converters.ObjectToXStream |
表12.4 ObjectToXStream のプロパティ
| プロパティ | 説明 | 必須 |
|---|---|---|
| class-alias |
シリアル化前に
XStream.alias(String, Class) の呼出しで使用されるクラスエイリアス。デフォルトでは入力オブジェクトのクラス名に設定されます。
| No |
| exclude-package |
生成された XML からパッケージ名を除外します。デフォルト値は
true です。class-alias が指定されている場合は適用できません。
| No |
| aliases |
XStream が XML エレメントをオブジェクトに変換できるように追加のエイリアスを指定します。
| No |
| namespaces |
XStream によって生成された XML に追加する必要があるネームスペースを指定します。各 namespace-uri はこのネームスペースが現れるエレメントである local-part に関連付けられます。
| No |
| xstream-mode |
使用する XStream モードを指定します。設定可能な値は
XPATH_RELATIVE_REFERENCES (デフォルト値)、XPATH_ABSOLUTE_REFERENCES、 ID_REFERENCES、または NO_REFERENCES です。
| No |
| fieldAliases |
Xstream に追加されたフィールドエイリアス
| No |
| implicit-collections |
Xstream で登録されます。
| No |
| converters |
Xtream で登録されるコンバーター一覧
| No |
例12.5 設定例
<action name="transform" class="org.jboss.soa.esb.actions.converters.ObjectToXStream">
<property name="class-alias" value="MyAlias" />
<property name="exclude-package" value="true" />
<property name="aliases">
<alias name="alias1" class="com.acme.MyXXXClass1" />
<alias name="alias2" class="com.acme.MyXXXClass2" />
<alias name="xyz" class="com.acme.XyzValueObject"/>
<alias name="x" class="com.acme.XValueObject"/>
...
</property>
<property name="namespaces">
<namespace namespace-uri="http://www.xyz.com" local-part="xyz"/>
<namespace namespace-uri="http://www.xyz.com/x" local-part="x"/>
...
</property>
<property name="fieldAliases">
<field-alias alias="aliasName" definedIn="className" fieldName="fieldName"/>
<field-alias alias="aliasName" definedIn="className" fieldName="fieldName"/>
...
</property>
<property name="implicit-collections">
<implicit-collection class="className" fieldName="fieldName"
fieldType="fieldType" itemType="itemType"/>
...
</property>
<property name="converters">
<converter class="className" fieldName="fieldName" fieldType="fieldType"/>
...
</property>
</action>12.1.6. XStreamToObject
| 入力タイプ | java.lang.String |
| 出力タイプ | ユーザーオブジェクト (“incoming-type” プロパティによって指定されます) |
| クラス | org.jboss.soa.esb.actions.converters.XStreamToObject |
表12.5 XStreamToObject のプロパティ
| プロパティ | 説明 | 必須 |
|---|---|---|
| class-alias |
シリアル化中に使用されるクラスエイリアス。デフォルトでは入力オブジェクトのクラス名に設定されます。
| No |
| exclude-package |
XML にパッケージ名を含めるかどうかを示すフラグ。
| YES |
| incoming-type |
クラスタイプ
| Yes |
| root-node |
XML の実際のルートノードとは異なるルートノードを指定します。XPath 式を取得します。
| No |
| aliases |
XStream が XML エレメントをオブジェクトに変換できるように追加のエイリアスを指定します。
| No |
| attribute-aliases |
Xstream が XML 属性をオブジェクトに変換できるように追加の属性エイリアスを指定します。
| No |
| fieldAliases |
Xstream に追加されたフィールドエイリアス
| No |
| implicit-collections |
Xstream で登録されます。
| No |
| converters |
Xstream が XML エレメントと属性をオブジェクトに変換できるようにコンバーターを指定します。コンバーターの詳細については、http://xstream.codehaus.org/converters.html を参照してください。
| No |
例12.6 設定例
<action name="transform" class="org.jboss.soa.esb.actions.converters.XStreamToObject">
<property name="class-alias" value="MyAlias" />
<property name="exclude-package" value="true" />
<property name="incoming-type" value="com.acme.MyXXXClass" />
<property name="root-node" value="/rootNode/MyAlias" />
<property name="aliases">
<alias name="alias1" class="com.acme.MyXXXClass1/>
<alias name="alias2" class="com.acme.MyXXXClass2/>
...
</property>
<property name="attribute-aliases">
<attribute-alias name="alias1" class="com.acme.MyXXXClass1"/>
<attribute-alias name="alias2" class="com.acme.MyXXXClass2"/>
...
</property>
<property name="fieldAliases">
<field-alias alias="aliasName" definedIn="className" fieldName="fieldName"/>
<field-alias alias="aliasName" definedIn="className" fieldName="fieldName"/>
...
</property>
<property name="implicit-collections">
<implicit-colletion class="className" fieldName="fieldName" fieldType="fieldType"
itemType="itemType"/>
...
</property>
<property name="converters">
<converter class="className" fieldName="fieldName" fieldType="fieldType"/>
...
</property>
</action>12.1.7. XsltAction
表12.6 XsltAction プロパティ
| プロパティ | 説明 | 必須 |
|---|---|---|
|
get-payload-location
|
メッセージペイロードに含まれるメッセージボディの位置
未指定のデフォルトのペイロード位置を使用する場合
|
NO
|
|
set-payload-location
|
結果となるペイロードが配置されるメッセージボディの位置。
未指定のデフォルトのペイロード位置を使用する場合
|
No
|
|
templateFile
|
XSL テンプレートファイルへのパス。デプロイアーカイブまたは URL 内のファイルパスで定義します。
|
Yes
|
|
resultType
|
結果となるメッセージペイロードとして設定される結果のタイプ。
このプロパティは、変換の出力結果を制御します。現在利用可能な値は以下のとおりです。
メッセージペイロードが
SourceResult オブジェクトで、resultType が SOURCERESULT に設定されていない場合、結果は resultType で指定されているタイプで返されます。開発者は、このタイプに互換があることを確認するようにしてください。
|
No
|
|
failOnWarning
| true の場合、変換警告が発生して例外が送出されます。false の場合、問題があることがロギングされます。
デフォルトは true
|
No
|
|
uriResolver
| URIResolver を実装するクラスの完全修飾クラス名。これは、変換ファクトリに設定されます。
|
No
|
|
factory.feature.*
|
変換ファクトリに設定されるファクトリ機能。完全修飾 URI である機能名は factory.feature. 接頭辞のあとに指定する必要があります。例:factory.feature.http://javax.xml.XMLConstants/feature/secure-processing
|
No
|
|
Factory.attribute.*
|
変換ファクトリに設定されるファクトリ属性。属性名は factory.attribute. 接頭辞のあとに指定する必要があります。例:factory.attribute.someVendorAttributename
|
NO
|
| validation |
True の場合、ソース文書が無効になり、例外が送出されます。False の場合、整形式の文書が強制されたとしても、検証が行われます。「XsltAction 検証」 を参照してください。
デフォルト値
. false
| No |
| schemaFile |
使用する入力スキーマファイル (XSD)。クラスパスに置かれている。「XsltAction 検証」 を参照してください。
| No |
| schemaLanguage |
使用する入力スキーマ言語。「XsltAction 検証」 を参照してください。
| No |
12.1.7.1. XsltAction 検証
- Disabled (デフォルト)これは、明示的に
falseに設定するか、省略され検証を無効にすることができます。<property name="validation" value="false"/>
- DTD
<property name="validation" value="true"/> <property name="schemaLanguage" value="http://www.w3.org/TR/REC-xml"/>
または<property name="validation" value="true"/> <property name="schemaLanguage" value=""/>
- W3C XML Schema または RELAX NG
<property name="validation" value="true"/>
または<property name="validation" value="true"/> <property name="schemaLanguage" value="http://www.w3.org/2001/XMLSchema"/>
または<property name="validation" value="true"/> <property name="schemaLanguage" value="http://relaxng.org/ns/structure/1.0"/>
- W3C XML Schema または schemaFile が含まれる RELAX NG
<property name="validation" value="true"/> <property name="schemaFile" value="/example.xsd"/>
または<property name="validation" value="true"/> <property name="schemaLanguage" value="http://www.w3.org/2001/XMLSchema"/> <property name="schemaFile" value="/example.xsd"/>
または<property name="validation" value="true"/> <property name="schemaLanguage" value="http://relaxng.org/ns/structure/1.0"/> <property name="schemaFile" value="/example.rng"/>
- XML が整形式で、有効な場合
- 変換が実行されます。
- パイプラインが継続されます。
- XML が不正な場合
- エラーはロギングがされます。
- SAXParseException -> ActionProcessingException
- パイプラインが停止されます。
- XML が整形式であるが無効な場合
- 検証が有効でない場合
- 変換が失敗します。
- パイプラインが継続されます。
- 検証が有効な場合
- エラーはロギングがされます。
- SAXParseException -> ActionProcessingException
- パイプラインが停止されます。
12.1.8. SmooksTransformer
重要
| クラス | org.jboss.soa.esb.actions.converters.SmooksTransformer |
表12.7 SmooksTransformer リソースの設定:
| プロパティ | 説明 | 必須 |
|---|---|---|
| resource-config | Smooks リソース設定ファイル。
| Yes |
表12.8 SmooksTransformer メッセージプロファイルプロパティ (オプション)
| プロパティ | 説明 | 必須 |
|---|---|---|
| from |
メッセージ交換参加者名、 メッセージ生成者
| No |
| from-type |
"from" メッセージ交換参加者によって作成されたメッセージタイプ/形式。
| No |
| to |
メッセージ交換参加者名、 メッセージ消費者
| No |
| to |
メッセージ交換参加者名、メッセージ消費者
| No |
| to-type |
“to”メッセージ交換参加者によって消費されたメッセージタイプ/形式。
| No |
例12.7 設定例: デフォルトの入力/出力
<action name="transform" class="org.jboss.soa.esb.actions.converters.SmooksTransformer">
<property name="resource-config" value="/smooks/config-01.xml" />
</action>例12.8 設定例: 名前付きの入力/出力
<action name="transform" class="org.jboss.soa.esb.actions.converters.SmooksTransformer">
<property name="resource-config" value="/smooks/config-01.xml" />
<property name="get-payload-location" value="get-order-params" />
<property name="set-payload-location" value="get-order-response" />
</action>例12.9 設定例:メッセージプロファイルの使用
<action name="transform" class="org.jboss.soa.esb.actions.converters.SmooksTransformer">
<property name="resource-config" value="/smooks/config-01.xml" />
<property name="from" value="DVDStore:OrderDispatchService" />
<property name="from-type" value="text/xml:fullFillOrder" />
<property name="to" value="DVDWarehouse_1:OrderHandlingService" />
<property name="to-type" value="text/xml:shipOrder" />
</action>Message.Body under their beanId の配下で Message.Body にバインドされます。詳細は、http://community.jboss.org/wiki/MessageTransformation を参照してください。
12.1.9. SmooksAction
重要
12.1.9.1. SmooksAction の設定
例12.10 SmooksAction
<action name="transform" class="org.jboss.soa.esb.smooks.SmooksAction">
<property name="smooksConfig" value="/smooks/order-to-java.xml" />
</action>表12.9 SmooksAction オプションとなる設定プロパティ
| プロパティ | 説明 | デフォルト値 |
|---|---|---|
| get-payload-location |
メッセージペイロードに含まれるメッセージボディの位置
| デフォルトのペイロード位置 |
| set-payload-location |
結果となるペイロードが配置されるメッセージボディの位置。
| デフォルトのペイロード位置 |
| mappedContextObjects |
ESB メッセージボディの EXECUTION_CONTEXT_ATTR_MAP_KEY マップにマッピングされるコンマ区切りの Smooks ExecutionContext オブジェクト。デフォルトは空の一覧です。オブジェクトはシリアライズできる必要があります。
| |
| resultType |
結果となるメッセージペイロードとして設定される結果のタイプ。「結果タイプの指定」 を参照してください。
| STRING |
| javaResultBeanId | resultType=JAVA の場合のみ該当
resultType が "JAVA" の場合に結果としてマッピングされる Smooks Bean コンテキスト beanId。指定されていない場合は、Bean コンテキスト Bean Map が JAVA の結果としてマッピングされます。
| |
| reportPath |
Smooks 実行レポートを生成するときのパスおよびファイル名。これは開発での使用を目的としており、本番稼働での使用は目的としていません。
|
12.1.9.2. メッセージ入力ペイロード
12.1.9.3. XML、EDI、CSV などの入力ペイロード
- 文字列
- InputStream
- Reader
- バイトアレイ
12.1.9.4. Java 入力ペイロード
Smooks.filterSourceが渡される JavaSource インスタンス上でsetEventStreamRequired(false)を呼び出すJavaSource javaSource = new JavaSource(orderBean); // Turn streaming off via the JavaSource... javaSource.setEventStreamRequired(false); smooks.filterSource(javaSource, result);
- あmたは、Smooks 設定の読み込み機能をオフにする
<?xml version="1.0"?> <smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.1.xsd"> <reader> <features> <setOff feature="http://www.smooks.org/sax/features/generate-java-event-stream" /> </features> </reader> <!-- Other Smooks configurations e.g. a FreeMarker template... --> </smooks-resource-list>
- オブジェクトが Map の場合、Map インスタンスはテンプレートコンテキストになり、テンプレート内の bean 名に Map エントリキーを使用するだけでよくなります。
- Map 以外のオブジェクトは、JavaSource クラスがオブジェクトクラス SimpleName を取り、JavaBean プロパティ名をそこから作成します。これは、テンプレート作成に使用するコンテキスト bean の名前です。例えば、Bean クラス名は
com.acme.Orderで、テンプレート作成用のコンテキスト bean 名はorderになります。
12.1.9.5. 結果タイプの指定
例12.11 結果タイプの指定
<action name="transform" class="org.jboss.soa.esb.smooks.SmooksAction">
<property name="smooksConfig" value="/smooks/order-to-java.xml" />
<property name="resultType" value="JAVA" />
<property name="javaResultBeanId" value="order" />
</action>12.1.10. PersistAction
| 入力タイプ | メッセージ |
| 出力タイプ | 入力メッセージ |
| クラス | org.jboss.soa.esb.actions.MessagePersister |
表12.10 PersistAction のプロパティ
| プロパティ | 説明 | 必須 |
|---|---|---|
| classification |
メッセージが保存される場所を分類するために使用されます。メッセージプロパティ
org.jboss.soa.esb.messagestore.classification がメッセージで定義されている場合は、そのメッセージプロパティが代わりに使用されます。それ以外の場合は、デフォルト値がインスタンス作成時に提供されることがあります。
| Yes |
| message-store-class | MessageStore の実装
| Yes |
| terminal |
パイプラインを終了するためにアクションが使用される場合、この値は true (デフォルト値) に設定する必要があります。それ以外の場合は、この値を false に設定します (入力メッセージが処理から返されます)。
| No |
例12.12 PersistAction
<action name="PersistAction" class="org.jboss.soa.esb.actions.MessagePersister">
<property name="classification" value="test"/>
<property name="message-store-class"
value="org.jboss.internal.soa.esb.persistence.format.db.DBMessageStoreImpl"/>
</action>12.2. ビジネスプロセス管理
12.2.1. JBPM - BpmProcessor
| 入力タイプ | AbstractCommandVehicle.toCommandMessage() で生成される org.jboss.soa.esb.message.Message |
| 出力タイプ | Message – 入力メッセージと同じ |
| クラス | org.jboss.soa.esb.services.jbpm.actions.BpmProcessor |
- NewProcessInstanceCommand
- StartProcessCommand
- CancelProcessInstanceCommand
- GetProcessInstanceVariablesCommand
表12.11 BpmProcessor のプロパティ
| プロパティ | 説明 | 必須 |
|---|---|---|
| command |
呼び出される JBPM コマンド。必須の許容値:
| Yes |
| processdefinition |
process-definition-id プロパティが使用されない場合の New- および Start-ProcessInstanceCommands の必須プロパティ。このプロパティの値は JBPM にすでにデプロイされ、新しいインスタンスを作成したいプロセス定義を参照する必要があります。このプロパティは Signal- および CancelProcessInstance-Commands に適用されません。
| 場合による |
| process-definition-id |
processdefinition プロパティが使用されない場合の New- および Start-ProcessInstanceCommands の必須プロパティ。このプロパティの値は新しいインスタンスを作成したい JBPM の processdefintion id を参照する必要があります。このプロパティは Signal- および CancelProcessInstanceCommands に適用されません。
| 場合による |
| actor |
New- および StartProcessInstanceCommands のみに適用される JBPM actor id を指定するオプションプロパティ。
| No |
| key |
JBPM キーの値を指定するオプションプロパティ。たとえば、このキーの値として一意の請求書 id を渡すことができます。JBPM 側では、このキーは “ビジネス” キー id フィールドになります。このキーはプロセスインスタンスに対する文字列ベースのビジネスキープロパティです。ビジネスキーが提供される場合、ビジネスキーとプロセス定義の組み合わせは一意である必要があります。EsbMessage から必要な値を抽出するためにキーの値は MVEL 式を保持できます。たとえば、メッセージのボディに “businessKey”という名前の名前付きパラメーターがある場合は、“body.businessKey” を使用します。このプロパティは New- および StartProcessInstanceCommands に対してのみ使用されることに注意してください。
| No |
| transition-name |
オプションパラメーター。このプロパティは StartProcessInstance- および Signal Commands にのみ適用され、現在のノードから複数の移行が存在する場合にのみ使用されます。このプロパティが指定されていない場合は、ノードからデフォルトの移行が取得されます。デフォルトの移行は JBPM processdefinition.xml の該当するノードに対して定義された移行の一覧の最初の移行です。
| No |
| esbToBpmVars |
New- および StartProcessInstanceCommands、SignalCommand のオプションプロパティ。このプロパティは EsbMessage から抽出し、特定のプロセスインスタンスに対する JBPM コンテキストに設定する必要がある変数の一覧を定義します。この一覧はマッピングエレメントから構成されます。各マッピングエレメントは以下の属性を持つことができます。
| No |
12.3. スクリプト
12.3.1. GroovyActionProcessor
| クラス | org.jboss.soa.esb.actions.scripting.GroovyActionProcessor |
表12.12 GroovyActionProcessor のプロパティ
| プロパティ | 説明 | 必須 |
|---|---|---|
| script |
Groovy スクリプトへのパス (クラスパス上)。
| |
| supportMessageBasedScripting |
メッセージ内でスクリプトの使用を許可します。
| |
| cacheScript |
スクリプトをキャッシュします。 デフォルトの設定は
true です。
| No |
表12.13 GroovyAction Processor Script Binding の変数
| 変数 | 説明 |
|---|---|
| message |
メッセージ
|
| payloadProxy |
メッセージペイロードのユーティリティ (MessagePayloadProxy)
|
| config |
アクション設定 (ConfigTree)
|
| logger |
GroovyActionProcessor のスタティック Log4J Logger (Logger)。
|
例12.13 設定例
<action name="process" class="org.jboss.soa.esb.scripting.GroovyActionProcessor">
<property name="script" value="/scripts/myscript.groovy"/>
</action>12.3.2. ScriptingAction
| クラス | org.jboss.soa.esb.actions.scripting.ScriptingAction |
- JBoss ESB 4.8 には BSF 2.3.0 が含まれています。このバージョンは、BSF 2.4.0 に比べ言語サポートが少なくなっています (例えば、Groovy がない、非機能の Rhino など)。今後のバージョンには、Groovy と Rhino をサポートする BSF 2.4.0 が含まれる予定です。
- BSF はスクリプトをプリコンパイル、キャッシュ、および再使用する API を提供しません。このため、ScriptingAction のを実行するたびに再びコンパイルを行うことになります。パフォーマンス要件を評価する場合はこのことを考慮してください。
- アプリケーションに BeanShell スクリプトを含める場合は、.bsh の代わりに .beanshell 拡張子を使用することが推奨されます。.beanshell 拡張子を使用しないと、JBoss BSHDeployer がそのスクリプトを取得することがあります。
表12.14 ScriptingAction のプロパティ
| プロパティ | 説明 | 必須 |
|---|---|---|
| script |
スクリプトへのパス (クラスパス上)。
| |
| supportMessageBasedScripting |
メッセージ内でスクリプトの使用を許可します。
| |
| language |
オプションのスクリプト言語 (拡張機能の減少よりも優先されます)。
| No |
表12.15 ScriptingAction Processor Script Binding の変数
| 変数 | 説明 |
|---|---|
| message |
メッセージ
|
| payloadProxy |
メッセージペイロードのユーティリティ (MessagePayloadProxy)
|
| config |
アクション設定 (ConfigTree)
|
| logger |
ScriptingAction の静的な Log4J Logger (Logger)
|
例12.14 ScriptingAction
<action name="process" class="org.jboss.soa.esb.scripting.ScriptingAction">
<property name="script" value="/scripts/myscript.beanshell"/>
</action>12.4. サービス
12.4.1. EJBProcessor
| 入力タイプ | EJB のメソッド名とパラメータ |
| 出力タイプ | EJB 固有のオブジェクト |
| クラス | org.jboss.soa.esb.actions.EJBProcessor |
表12.16 EJBProcessor のプロパティ
| プロパティ | 説明 | 必須 |
|---|---|---|
| ejb3 |
これが EJB3.x セッション Bean の呼び出しの場合
| |
| ejb-name |
EJB の ID。ejb3 が true の場合はオプションです。
| |
| jndi-name |
関連する JNDI ルックアップです。
| |
| initial-context-factory |
JNDI ルックアップのメカニズムです。
| |
| provider-url |
関連するプロバイダです。
| |
| method |
呼び出す EJB メソッド名。
| |
| lazy-ejb-init |
EJB がデプロイメント時ではなくランタイム時に遅延して初期化されるべきかどうか。デフォルトは false。
| No |
| ejb-params |
メソッドを呼び出すときにメソッドが存在する入力メッセージの位置で使用するパラメーターの一覧。
| |
| esb-out-var |
出力の位置 (デフォルト値は DEFAULT_EJB_OUT)。
| No |
例12.15 EJB 2.x の設定例
<action name="EJBTest" class="org.jboss.soa.esb.actions.EJBProcessor">
<property name="ejb-name" value="MyBean" />
<property name="jndi-name" value="ejb/MyBean" />
<property name="initial-context-factory" value="org.jnp.interfaces.NamingContextFactory" />
<property name="provider-url" value="localhost:1099" />
<property name="method" value="login" />
<!-- Optional output location, defaults to "DEFAULT_EJB_OUT"
<property name="esb-out-var" value="MY_OUT_LOCATION"/> -->
<property name="ejb-params">
<!-- arguments of the operation and where to find them in the message -->
<arg0 type="java.lang.String">username</arg0>
<arg1 type="java.lang.String">password</arg1>
</property>
</action>例12.16 EJB 3.x の設定例
<action name="EJBTest" class="org.jboss.soa.esb.actions.EJBProcessor">
<property name="ejb3" value="true" />
<property name="jndi-name" value="ejb/MyBean" />
<property name="initial-context-factory" value="org.jnp.interfaces.NamingContextFactory" />
<property name="provider-url" value="localhost:1099" />
<property name="method" value="login" />
<!-- Optional output location, defaults to "DEFAULT_EJB_OUT"
<property name="esb-out-var" value="MY_OUT_LOCATION"/> -->
<property name="ejb-params">
<!-- arguments of the operation and where to find them in the message -->
<arg0 type="java.lang.String">username</arg0>
<arg1 type="java.lang.String">password</arg1>
</property>
</action>12.5. ルーティング
12.5.1. Aggregator
| クラス | org.jboss.soa.esb.actions.Aggregator |
[UUID] ":" [message-number] ":" [message-count]
表12.17 アグリゲータのプロパティ
| プロパティ | 説明 | 必須 |
|---|---|---|
| timeoutInMillis |
集約プロセスがタイムアウトするまでのミリ秒単位の時間です。
| No |
例12.17 設定例
<action class="org.jboss.soa.esb.actions.Aggregator" name="Aggregator">
<property name="timeoutInMillis" value="60000"/>
</action>
12.5.2. EchoRouter
12.5.3. HttpRouter
| クラス | org.jboss.soa.esb.actions.routing.http.HttpRouter |
表12.18 Apache Commons HttpRouter
| プロパティ | 説明 | 必須 |
|---|---|---|
| unwrap | true (デフォルト) の場合は送信前にメッセージオブジェクトからメッセージペイロードを抽出します。false の場合は、MessageType に従い、シリアライズされたメッセージを XML または Base64 でコンドードされた Java シリアライズオブジェクトとして送信します。
| No |
| endpointUrl |
メッセージが転送されるエンドポイント
| Yes |
| http-client-property |
HttpRouter は、HttpClientFactory を使用して HttpClient インスタンスを作成、設定します。ローカルのファイルシステム、クラスパス、URI でプロパティファイルを参照するファイルプロパティを使用することで、ファクトリ設定を指定します。これがどのように行われるか、以下の例を参照してください。ファクトリプロパティに関する詳細情報は、http://www.jboss.org/community/docs/DOC-9969 を参照してください。
| No |
| method |
現在 GET と POST のみのサポートです。
| Yes |
| responseType |
応答が返される形式を指定します。 STRING か BYTES になり、 デフォルト値は STRING です。
| No |
| headers |
リクエストに追加。複数の <header name="test" value="testvalue" /> 要素をサポートします。
| No |
| MappedHeaderList |
対象のエンドポイントに伝搬されるべきヘッダー名をコンマ区切りの一覧にしたもの。ヘッダーの値は、http-gateway から ESB に入るリクエストまたは、現在の ESB メッセージのプロパティ内にあるリクエストにある値をリトリーブします。
| No |
例12.18 設定例
<action name="httprouter" class="org.jboss.soa.esb.actions.routing.http.HttpRouter">
<property name="endpointUrl"value="http://host:80/blah">
<http-client-property name="file" value="/ht.props"/>
</property>
<property name="method" value="GET"/>
<property name="responseType" value="STRING"/>
<property name="headers">
<header name="blah" value="blahval" ></header>
</property>
</action>12.5.4. JMSRouter
| クラス | org.jboss.soa.esb.actions.routing.JMSRouter |
表12.19 JMSRouter
| プロパティ | 説明 | 必須 |
|---|---|---|
| unwrap | true の場合は送信前にメッセージオブジェクトからメッセージペイロードを抽出します。false (デフォルト値) の場合は、シリアル化されたメッセージオブジェクトが送信されます。
| No |
| jndi-context-factory |
使用する JNDI コンテキストファクトリ。デフォルト値は
org.jnp.interfaces.NamingContextFactory です。
| No |
| jndi-URL |
使用する JNDI URL。デフォルト値は
127.0.0.1:1099 です。
| No |
| jndi-pkg-prefix |
使用する JNDI 命名パッケージ接頭辞。デフォルト値は
org.jboss.naming:org.jnp.interfaces です。
| No |
| connection-factory |
使用する ConnectionFactory の名前です。 デフォルトは
ConnectionFactory です。
| No |
| persistent |
persistent: JMS DeliveryMody。
true (デフォルト値) または false を設定します。
| No |
| priority |
使用される JMS 優先度。デフォルト値は
javax.jms.Message.DEFAULT_PRIORITY です。
| No |
| time-to-live |
使用される JMS Time-To-Live。デフォルト値は
javax.jms.Message.DEFAULT_TIME_TO_LIVE です。
| No |
| security-principal |
JMS 接続の作成時に使用するセキュリティプリンシパル。
| Yes |
| security-credentials |
JMS 接続の作成時に使用するセキュリティクレデンシャル。
| Yes |
| property-strategy |
JMSPropertiesSetter interface の実装 (デフォルト値をオーバーライドする場合)。
| No |
| message-prop |
メッセージで設定されるプロパティには
message-prop という接頭辞が付けられます。
| No |
| jndi-prefixes |
コンマで区切った接頭辞の文字列。これら接頭辞を持つプロパティは JNDI 環境に追加されます。
| No |
| jndiName |
メッセージが送信されるべきキューまたはトピック名を定義します。
| No |
12.5.5. EmailRouter
| クラス | org.jboss.soa.esb.actions.routing.email.EmailRouter |
表12.20 EmailRouter プロパティ
| プロパティ | 説明 | 必須 |
|---|---|---|
| unwrap |
true の場合は送信前にメッセージオブジェクトからメッセージペイロードを抽出します。false (デフォルト値) の場合は、シリアル化されたメッセージオブジェクトが送信されます。
| |
| host |
SMTP サーバーのホスト名。指定されていない場合は、jbossesb-properties.xml のデフォルトプロパティ 'org.jboss.soa.esb.mail.smtp.host' が使用されます。
| |
| port |
SMTP サーバーのポート。指定されていない場合は、jbossesb-properties.xml のデフォルトプロパティ 'org.jboss.soa.esb.mail.smtp.port' が使用されます。
| |
| username |
SMTP サーバーのユーザー名。指定されていない場合は、jbossesb-properties.xml のデフォルトプロパティ 'org.jboss.soa.esb.mail.smtp.user' が使用されます。
| |
| password |
SMTP サーバーの上記ユーザー名に対するパスワード。指定されていない場合は、jbossesb-properties.xml のデフォルトプロパティ 'org.jboss.soa.esb.mail.smtp.password' が使用されます。
| |
| auth |
true の場合、AUTH command を使用してユーザー認証を試行します。指定されていない場合は、jbossesb-propertiesxml のデフォルトプロパティ 'org.jboss.soa.esb.mail.smtp.auth' が使用されます。
| |
| from |
送信元の e-メールアドレス
| |
| sendTo |
送信先の e-メールアカウント
| |
| subject |
E-メールの件名
| |
| messageAttachmentName |
メッセージペイロードを含む添付のファイル名 (オプション)。指定されない場合は、メッセージペイロードがメッセージボディに含まれます。
| |
| message |
電子メールメッセージを構成する ESB メッセージコンテンツに追加する文字列 (オプション)
| |
| ccTo |
カンマ区切り一覧形式の電子メールアドレス (オプション)
| |
| attachment |
送信メールに追加される添付ファイルを含む子要素
|
例12.19 設定例
<action name="send-email" class="org.jboss.soa.esb.actions.routing.email.EmailRouter">
<property name="unwrap" value="true" />
<property name="host" value="smtpHost" />
<property name="port" value="25" />
<property name="username" value="smtpUser" />
<property name="password" value="smtpPassword" />
<property name="from" value="jbossesb@xyz.com" />
<property name="sendTo" value="system2@xyz.com" />
<property name="subject" value="Message Subject" />
</action> 12.5.6. ContentBasedRouter
| クラス | org.jboss.soa.esb.actions.ContentBasedRouter |
- XPath: 単純な XPath ルール。アクションのインライン定義、または .properties 形式ファイルを外部から定義
- Drools: Drools ルールファイル (DSL)。XPath ベースの DSL に対する事前定義サポート
表12.21 ContentBasedRouter プロパティ
| プロパティ | 説明 | 必須 |
|---|---|---|
| cbrAlias |
コンテンツベースルーティングプロバイダーのエイリアス。対応値は、"Drools" (デフォルト)、 "Xpath"、"Regex"。
| |
| ruleSet |
外部定義のルールファイル。Drools ルールプロバイダーが使用されている場合は、Drools DSL ファイル。XPath または Regex プロバイダーが使用されている場合は、.properties ルールファイル。
| |
| ruleLanguage |
CBR 評価ドメイン固有言語 (DSL) ファイル。Drools ルールプロバイダーのみに該当
| |
| ruleReload |
ルールファイルを毎回再ロードするかどうかを示すフラグです。 デフォルトは “false” です。
| |
| ruleAuditType |
Drools に監査ロギングを実行させる任意のプロパティ。ログを Drools Eclipse プラグインに読み込ませ確認することができます。有効な値は CONSOLE、FILE、THREADED_FILE で、デフォルトでは監査ロギングが実行されます。
| |
| ruleAuditFile |
監査ロギングのファイルパスを定義する任意のプロパティ。FILE あるいは THREADED_FILE ruleAuditType のみに適用されます。デフォルトは "event" です。JBoss Drools は ".log" を自動で追加します。このファイルのデフォルトの場所は "." (現在の作業ディレクトリ、つまり JBoss では bin/ ディレクトリ) となっています。
| |
| ruleAuditInterval |
監査イベントを監査ログにフラッシュする頻度を定義する任意のプロパティ。これは THREADED_FILE ruleAuditType のみに適用されます。デフォルトは 1000 (ミリ秒) です。
| |
| destinations |
<route-to> 設定のコンテナープロパティ。ルールが外部定義される場合、この設定は以下の形式になります。
<route-to destination-name="express"
service-category="ExpressShipping" service-name="ExpressShippingService"/>
ルールが設定内にインライン定義されている場合、この設定は以下の形式を取ります (Drools プロバイダーへのサポートはなし)。
<route-to service-category="ExpressShipping"
service-name="ExpressShippingService" expression="/order[@statusCode='2']" />
| |
| namespaces |
XPath ルールプロバイダーなどで必要な <namespace> 設定のコンテナープロパティ。<namespace> 設定は以下の形式をとります。
<namespace prefix="ord" uri="http://acme.com/order" /> |
表12.22 ContentBasedRouter プロセスのメソッド
| プロパティ | 説明 | 必須 |
|---|---|---|
| process |
メッセージに集約データを追加しないでください。
|
12.5.7. StaticRouter
| クラス | org.jboss.soa.esb.actions.StaticRouter |
表12.23 StaticRouter のプロパティ
| プロパティ | 説明 |
|---|---|
| destinations |
<route-to> 構成のコンテナプロパティです。
<route-to destination-name="express" service-category="ExpressShipping"
service-name="ExpressShippingService"/>
|
表12.24 StaticRouter プロセスのメソッド
| method | 説明 |
|---|---|
process |
メッセージに集約データを追加しないでください。
|
例12.20 設定例 - StaticRouter
<action name="routeAction" class="org.jboss.soa.esb.actions.StaticRouter">
<property name="destinations">
<route-to service-category="ExpressShipping" service-name="ExpressShippingService"/>
<route-to service-category="NormalShipping" service-name="NormalShippingService"/>
</property>
</action>12.5.8. SyncServiceInvoker
| クラス | org.jboss.soa.esb.actions.SyncServiceInvoker |
表12.25 SyncServiceInvoker プロパティ
| プロパティ | 説明 | 必須 |
|---|---|---|
| service-category |
サービスカテゴリ
| Yes |
| service-name |
サービス名
| Yes |
| failOnException |
アクションが対象サービスの呼び出しからの例外で失敗させるかどうか。False に設定している場合は、アクションはパイプラインに入力メッセージを単に返して、サービス処理を継続できます。失敗のステータスを把握する必要がある場合は、このパラメーターを true に設定して、通常の "faultTo" の仕組みを使用してパイプラインが失敗できるようにします (デフォルトは true)。
| No |
| suspendTransaction |
このアクションは、トランザクションがアクティブな状態にある場合に実行されると失敗します。このプロパティを True に設定されている場合、トランザクションは一時停止される場合があります。デフォルトは、False です。
| No |
| ServiceInvokerTimeout |
呼び出しのタイムアウト (ミリ秒)。タイムアウトされると、例外が発生し "failOnException" 設定に従ったアクションが起こされます。デフォルトは 3000 です。
| No |
例12.21 設定例 - SyncServiceInvoker
<action name="route” class="org.jboss.soa.esb.actions.SyncServiceInvoker">
<property name="service-category" value="Services" />
<property name="service-name" value="OM" />
</action>12.5.9. StaticWireTap
| クラス | org.jboss.soa.esb.actions.StaticWireTap |
表12.26 StaticWireTap のプロパティ
| プロパティ | 説明 | 必須 |
|---|---|---|
| destinations |
<route-to> 構成のコンテナプロパティです。
<route-to destination-name="express" service-category="ExpressShipping"
service-name="ExpressShippingService"/>
|
表12.27 StaticWireTap プロセスのメソッド
| method | 説明 |
|---|---|
process |
メッセージに集約データを追加しないでください。
|
例12.22 設定例 - StaticWireTap
<action name="routeAction" class="org.jboss.soa.esb.actions.StaticWiretap">
<property name="destinations">
<route-to service-category="ExpressShipping" service-name="ExpressShippingService"/>
<route-to service-category="NormalShipping" service-name="NormalShippingService"/>
</property>
</action>12.5.10. Email WireTap
| クラス | org.jboss.soa.esb.actions.routing.email.EmailWiretap |
表12.28 Email WireTap プロパティ
| プロパティ | 説明 |
|---|---|
| host |
SMTP サーバーのホスト名。指定されていない場合は、jbossesb-properties.xml のデフォルトプロパティ 'org.jboss.soa.esb.mail.smtp.host' が使用されます。
|
| port |
SMTP サーバーのポート。指定されていない場合は、jbossesb-properties.xml のデフォルトプロパティ 'org.jboss.soa.esb.mail.smtp.port' が使用されます。
|
| username |
SMTP サーバーのユーザー名。指定されていない場合は、jbossesb-properties.xml のデフォルトプロパティ 'org.jboss.soa.esb.mail.smtp.user' が使用されます。
|
| password |
SMTP サーバーの上記ユーザー名に対するパスワード。指定されていない場合は、jbossesb-properties.xml のデフォルトプロパティ 'org.jboss.soa.esb.mail.smtp.password' が使用されます。
|
| auth |
true の場合、AUTH command を使用してユーザー認証を試行します。指定されていない場合は、jbossesb-propertiesxml のデフォルトプロパティ 'org.jboss.soa.esb.mail.smtp.auth' が使用されます。
|
| from |
送信元の e-メールアドレス
|
| sendTo |
送信先の e-メールアカウント
|
| subject |
E-メールの件名
|
| messageAttachmentName |
メッセージペイロードを含む添付のファイル名 (オプション)。指定されない場合は、メッセージペイロードがメッセージボディに含まれます。
|
| message |
電子メールメッセージを構成する ESB メッセージコンテンツに追加する文字列 (オプション).
|
| ccTo |
カンマ区切り一覧形式の電子メールアドレス (オプション)
|
| attachment |
送信メールに追加される添付ファイルを含む子要素
|
例12.23 設定例 - Email Wiretap
<action name="send-email" class="org.jboss.soa.esb.actions.routing.email.EmailWiretap">
<property name="host" value="smtpHost" />
<property name="port" value="25" />
<property name="username" value="smtpUser" />
<property name="password" value="smtpPassword" />
<property name="from" value="jbossesb@xyz.com" />
<property name="sendTo" value="systemX@xyz.com" />
<property name="subject" value="Important message" />
</action> 12.6. Notifier
| クラス | org.jboss.soa.esb.actions.Notifier |
例12.24 設定例 - Notifier
<action name="notify" class="org.jboss.soa.esb.actions.Notifier" okMethod="notifyOK">
<property name="destinations">
<NotificationList type="OK">
<target class="NotifyConsole" />
<target class="NotifyFiles" >
<file name="@results.dir@/goodresult.log" />
</target>
</NotificationList>
<NotificationList type="err">
<target class="NotifyConsole" />
<target class="NotifyFiles" >
<file name="@results.dir@/badresult.log" />
</target>
</NotificationList>
</property>
</action>12.6.1. NotifyConsole
| クラス | NotifyConsole |
例12.25 NotifyConsole
<target class="NotifyConsole" />
12.6.2. NotifyFiles
| クラス | NotifyFiles |
| 目的 | ESB メッセージのコンテンツを指定された一連のファイルに書き込むことによって通知を実行します。 |
| 属性 | なし |
| 子 | ファイル |
| 子属性 |
|
例12.26 NotifyFiles
<target class="NotifyFiles" > <file append="true" URI="anyValidURI"/> <file URI="anotherValidURI"/> </target>
12.6.3. NotifySqlTable
| クラス | NotifySqlTable |
| 目的 | 既存のデータベース表に記録を挿入することで通知を行います。 データベースの記録には ESB メッセージのコンテンツと、 オプションでネストされた <column> エレメントを使って指定される他の値が含まれます。 |
| 属性 |
|
| 子 | 列 |
| 子属性 |
|
例12.27 NotifySqlTable
<target class="NotifySqlTable" driver-class="com.mysql.jdbc.Driver" connection-url="jdbc:mysql://localhost/db" user-name="user" password="password" table="table" dataColumn="messageData"> <column name="aColumnlName" value="aColumnValue"/> </target>
12.6.4. NotifyQueues
| クラス | NotifyQueues |
| 目的 | ESB メッセージ (添付されたプロパティを含む) を JMS メッセージに変換し、JMS メッセージをキューのリストに送信することによって通知を実行します。追加のプロパティは <messageProp> エレメントを使用して添付できます。 |
| 属性 | なし |
| 子 | queue |
| 子属性 |
|
| 子 | messageProp |
| 子属性 |
|
例12.28 NotifyQueues
<target class="NotifyQueues" > <messageProp name="aNewProperty" value="theValue"/> <queue jndiName="queue/quickstarts_notifications_queue" /> </target>
12.6.5. NotifyTopics
| クラス | NotifyTopics |
| 目的 | ESB メッセージ (添付されたプロパティを含む) を JMS メッセージに変換し、JMS メッセージをトピックの一覧に公開することにより通知を実行します。追加のプロパティは <messageProp> エレメントを使用して添付できます。 |
| 属性 | なし |
| 子 | topic |
| 子属性 |
|
| 子 | messageProp |
| 子属性 |
|
例12.29 NotifyTopics
<target class="NotifyTopics" > <messageProp name="aNewProperty" value="theValue"/> <queue jndiName="queue/quickstarts_notifications_topic" /> </target>
12.6.6. NotifyEmail
| クラス | NotifyEmail |
| 目的 | ESB メッセージコンテンツ (オプションで任意の添付ファイルも) を含む電子メールを送信することにより通知を実行します。 |
| 属性 | なし |
| 子 | topic |
| 子属性 |
|
| 子 | 添付です。 Optional |
| 子テキスト | 添付されるファイルの名前 |
例12.30 NotifyEmail
<target class="NotifyEmail" from="person@somewhere.com" sendTo="person@elsewhere.com" subject="theSubject"> <attachment>attachThisFile.txt</attachment> </target>
12.6.7. NotifyFTP
| クラス | NotifyFTP |
| 目的 | ESB メッセージコンテンツを含むファイルを作成し、FTP を使用してリモートファイルシステムに転送することにより通知を実行します。 |
| 属性 | なし |
| 子 | ftp |
| 子属性 |
|
例12.31 NotifyFTP
<target class="NotifyFTP" >
<ftp URL="ftp://username:pwd@server.com/remote/dir" filename="someFile.txt" />
</target>12.6.8. NotifyFTPList
| クラス | NotifyFTPList |
| 目的 |
NotifyFTPList は NotifyFTP を継承し、単一のファイル名を取り、ESB メッセージオブジェクトにあるファイル名を一覧表示する機能を追加します。
メッセージペイロードにあるファイルには、ファイル一覧 (完全パス) が含まれている必要があります。この一覧は反復され、"listFiles" プロパティが false の場合、一覧内のファイルはすべて、設定された 配信先の FTP サーバーディレクトリに送信されます。"listFiles" プロパティが true の場合は、各行には変換予定のファイル名が含まれており、ファイルが一行ごとに読み込まれます。
そのため、以下を提供してください。
|
| 属性 | なし |
| 子 | ftp |
| 子属性 |
|
例12.32 NotifyFTP
<target class="NotifyFTPList">
<ftp URL="ftp://username:password@localhost/outputdir"
filename="{org.jboss.soa.esb.gateway.file}">
listFiles="true"
deletelistFile="true"
</target>12.6.9. NotifyTCP
| クラス | NotifyTCP |
| 目的 |
TCP 経由でメッセージ送信。各接続は通知の期間のみ保持されます。
文字列データペイロードの送信のみに対応。暗黙的 (文字列として)、またはバイトアレイとしてエンコード (byte[])
|
| 属性 | なし |
| 子 | デスティネーション (複数のデスティネーションに対応) |
| 子属性 |
|
例12.33 NotifyFTP
<target class="NotifyTcp" > <destination URI="tcp://myhost1.net:8899" /> <destination URI="tcp://myhost2.net:9988" /> </target>
12.7. Webservices/SOAP
12.7.1. SOAPProcessor
注記
12.7.1.1. SOAPProcessor アクション設定
<action name="JBossWSAdapter" class="org.jboss.soa.esb.actions.soap.SOAPProcessor">
<property name="jbossws-endpoint" value="ABI_OrderManager" />
<property name="jbossws-context" value="ABIV1OrderManager_war" />
<property name="rewrite-endpoint-url" value="true" />
</action>- jbossws-endpoint
- これは SOAPProcessor を公開する JBossWS エンドポイントです。必須。
- jbossws-context
- このオプションのプロパティは、Webservice のデプロイメントのコンテキスト名で、JBossWS エンドポイントを一意に特定するために使用することができます。
- rewrite-endpoint-url
- オプションの "rewrite-endpoint-url" プロパティは HTTP エンドポイントでの負荷分散をサポートします。この場合、Web サービスエンドポイントコンテナーは WSDL の HTTP(S) エンドポイントアドレスをロードバランサーのものに設定するよう構成されます。"rewrite-endpoint-url" プロパティは、このような状況で HTTP エンドポイントアドレスの書き換えを無効にするために使用できます。これは非 HTTP プロトコルには影響しません。デフォルトは true です。
12.7.1.2. 依存関係
- JBoss Application Server 4.2.3.GA
- soap.esb サービス。これはディストリビューションの lib フォルダーにあります。
12.7.1.3. Web サービスエンドポイントデプロイメント
12.7.1.3.1. エンドポイントの公開
12.7.2. SOAPClient
<action name="soap-wise-client-action" class="org.jboss.soa.esb.actions.soap.wise.SOAPClient">
<property name="wsdl" value="http://host:8080/OrderManagement?wsdl"/>
<property name="SOAPAction" value="http://host/OrderMgmt/SalesOrder"/>
</action>表12.29 SOAPClient オプションのプロパティ
| プロパティ | 説明 |
|---|---|
| wsdl |
使用される WSDL
|
| operationName |
webservice WSDL で指定したオペレーション名
|
| SOAPAction |
エンドポイントオペレーション。OperationName が優先されます。
|
| EndPointName |
起動された EndPoint。Web サービスは複数のエンドポイントを持つことができます。指定されない場合は、wsdl で最初に指定されたものが使用されます。
|
| SmooksRequestMapper |
要求に定義された java 対 java のマッピングを定義する smooks 設定ファイルを指定します。
|
| SmooksResponseMapper |
応答に対して定義された java 対 java のマッピングを定義するために smooks 設定ファイルを指定します。
|
| serviceName |
オブジェクト生成をキャッシュしたり、すでに生成されたオブジェクトを使用したりするために wise によって使用されるシンボル的なサービス名。提供されない場合、wise は wsdl のサーブレット名を使用します。
|
| username |
Web サービスが BASIC 認証 HTTP によって保護されている場合に使用されるユーザー名。
|
| password |
Web サービスが BASIC 認証 HTTP によって保護されている場合に使用されるパスワード。
|
| smooks-handler-config |
SOAP 要求または応答 (特にヘッダの) の変換が必要になることがよくあります。これは一部の標準 SOAP ハンドラを追加するだけで行えます。Wise は JAXWS Soap ハンドラ (smooks に基づいたカスタムのハンドラまたは事前定義されたハンドラ) をサポートします。
SOAP 要求の変換 (送信前) は SOAPClient アクションの Smooks 変換設定プロパティを設定することによってサポートされます。
|
| custom-handlers |
また、一連のカスタム標準 JAXWS Soap ハンドラを提供することもできます。このパラメータは SoapHandler インターフェースを実装するクラスの一覧を受け取ります。クラスは完全修飾名を提供し、セミコロンによって区切る必要があります。
|
| LoggingMessages |
送信された soap メッセージや受信された応答を参照することはデバッグに役立ちます。Wise は System.out. Boolean 値で交換されるすべてのメッセージを出力する JAX-WS ハンドラを使用することによってこの目的を達成します。
|
重要
- "WARN [SOAPClient] Received status code '500' on HTTP SOAP (POST) request to ....." を出力します。
- 不良を無視して、次のアクションに続くだけです。
12.7.2.1. SOAP 操作パラメーター
- デフォルトのボディ位置に設定された Map インスタンスとして使用されます (Message.getBody().add(Map))
- 名前付きボディ位置に設定された Map インスタンスとして使用されます (Message.getBody().add(String, Map))。ここで、ボディ位置の名前は "paramsLocation" アクションプロパティの値として指定されます。
- 任意のタイプの一連のオブジェクト。この場合は、Smooks 設定をアクション属性 SmooksRequestMapper で指定する必要があり、Smooks は java 対 java の変換に使用されます。
- 一連の文字列ベースのキー値ペア (<String, Object>)。ここでキーはキーの値が入力される wsdls (または生成されたクラス) で指定された SOAP パラメータの名前です。SOAP 応答メッセージ消費Consumption
- デフォルトのボディ位置 (Message.getBody().add(Map))
- 名前付きボディ位置 (Message.getBody().add(String, Map))。ここで、ボディ位置の名前は "responseLocation" アクションプロパティの値として指定されます。
- 一連の任意のタイプのオブジェクト。この場合は、smooks 設定をアクション属性 SmooksResponseMapper で指定する必要があり、smooks は java 対 java の変換に使用されます。
- 一連の文字列ベースのキー値ペア (<String, Object>)。ここで、キーはキーの値を入力する wsdls (または生成されたクラス) で指定された SOAP 回答の名前です。SOAP 要求/応答に対する JAX-WS ハンドラ
- webservice_consumer_wise は基本的な用途を示します。
- webservice_consumer_wise2 は、'SmooksRequestMapper' と 'SmooksResponseMapper' の使用方法を示します。
- webservice_consumer_wise3 は 'smooks-handler-config' の使用方法を示します。
- webservice_consomer_wise4 は 'custom-handlers' の用途を示します。
12.7.2.1.1. JAXB Annotation Introductions
12.7.2.2. クイックスタート
12.7.3. SOAPClient
12.7.3.1. エンドポイント操作の仕様
<action name="soapui-client-action" class="org.jboss.soa.esb.actions.soap.SOAPClient">
<property name="wsdl" value="http://localhost:18080/acme/services/RetailerCallback?wsdl"/>
<property name="operation" value="SendSalesOrderNotification"/>
</action>12.7.3.2. SOAP 要求メッセージの構築
- デフォルトのボディ位置に設定された Map インスタンスとして使用されます (Message.getBody().add(Map))
- 名前付きボディ位置の Map インスタンス (Message.getBody().add(String, Map))。ここで、そのボディ位置の名前は "get-payload-location" アクションプロパティの値として指定されます。
- OGNL フレームワークを使用してアクセスされる一連のオブジェクト (SOAP メッセージパラメーターに対する)。OGNL の使用の詳細については、以降で説明します。
- 文字列ベースのキー値ペア (<String, Object>)。ここで、キーはキーの値が入力される SOAP パラメーターを識別する OGNL 式です。OGNL の詳細については、以降で説明します。
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:cus="http://schemas.acme.com">
<soapenv:Header/>
<soapenv:Body>
<cus:customerOrder>
<cus:header>
<cus:customerNumber>123456</cus:customerNumber>
</cus:header>
</cus:customerOrder>
</soapenv:Body>
</soapenv:Envelope><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:cus="http://schemas.active-endpoints.com/sample/customerorder/2006/04/CustomerOrder.xsd"
xmlns:stan="http://schemas.active-endpoints.com/sample/standardtypes/2006/04/StandardTypes.xsd">
<soapenv:Header/>
<soapenv:Body>
<cus:customerOrder>
<cus:items>
<cus:item>
<cus:partNumber>FLT16100</cus:partNumber>
<cus:description>Flat 16 feet 100 count</cus:description>
<cus:quantity>50</cus:quantity>
<cus:price>490.00</cus:price>
<cus:extensionAmount>24500.00</cus:extensionAmount>
</cus:item>
<cus:item>
<cus:partNumber>RND08065</cus:partNumber>
<cus:description>Round 8 feet 65 count</cus:description>
<cus:quantity>9</cus:quantity>
<cus:price>178.00</cus:price>
<cus:extensionAmount>7852.00</cus:extensionAmount>
</cus:item>
</cus:items>
</cus:customerOrder>
</soapenv:Body>
</soapenv:Envelope>12.7.3.3. SOAP 応答メッセージ消費
- デフォルトのボディ位置 (Message.getBody().add(Map))
- 名前付きボディ位置 (Message.getBody().add(String, Map))。ここでボディ位置の名前は "set-payload-location" アクションプロパティの値として指定されます。
- XStream ツールキットにより作成し、値が入力されるオブジェクトグラフ。また、JAXB と JAXB のアノテーション導入を使用して応答のアンマーシャル化のサポートを追加することも計画されています。
- 一連の文字列ベースのキー値ペア (<String, String>)。ここで、キーは SOAP 応答エレメントを識別する OGNL 式であり、値は SOAP メッセージからの値を表す文字列です。
- オプション 1 または 2 がアクション設定で指定されていない場合は、ロー SOAP 応答メッセージ (文字列) がメッセージに添付されます。
<action name="soapui-client-action" class="org.jboss.soa.esb.actions.soap.SOAPClient">
<property name="wsdl" value="http://localhost:18080/acme/services/RetailerService?wsdl"/>
<property name="operation" value="GetOrder"/>
<property name="get-payload-location" value="get-order-params" />
<property name="set-payload-location" value="get-order-response" />
<property name="responseXStreamConfig">
<alias name="customerOrder" class="com.acme.order.Order"
namespace="http://schemas.acme.com/services/CustomerOrder.xsd" />
<alias name="orderheader" class="com.acme.order.Header"
namespace="http://schemas.acme.com/services/CustomerOrder.xsd" />
<alias name="item" class="com.acme.order.OrderItem"
namespace="http://schemas.acme.com/services/CustomerOrder.xsd" />
</property>
</action><property name="responseXStreamConfig">
<fieldAlias name="header" class="com.acme.order.Order" fieldName="headerFieldName" />
<annotation class="com.acme.order.Order" />
</property><action name="soapui-client-action" class="org.jboss.soa.esb.actions.soap.SOAPClient">
<property name="wsdl" value="http://localhost:18080/acme/services/RetailerService?wsdl"/>
<property name="operation" value="GetOrder"/>
<property name="get-payload-location" value="get-order-params" />
<property name="set-payload-location" value="get-order-response" />
<property name="responseAsOgnlMap" value="true" />
</action>12.7.3.4. HttpClient 設定
<property name="wsdl" value="https://localhost:18443/active-bpel/services/RetailerCallback?wsdl">
<http-client-property name="file" value="/localhost-https-18443.properties" >
</http-client-property>
</property><property name="http-client-properties">
<http-client-property name="http.proxyHost" value="localhost"/>
<http-client-property name="http.proxyPort" value="8080"/>
</property>12.7.4. SOAPProxy
- クライアントとサービス間の疎結合を強化します。クライアントもサービスも相手の存在を認識していません。
- クライアントは、リモートサービスのホスト名 / IP アドレスへ直接接続できなくなります。
- クライアントは、インバウンド/アウトバウンドパラメーターを変更する修正済みの WSDL を確認します。少なくとも、クライアントが もとのプロキシ化されたエンドポイントではなく、ESB の公開するエンドポイントを参照するように、WSDL が微調整されます。
- SOAP エンベロープ/ボディの変換は、インバウンドのリクエストとアウトバウンドのレスポンス両方に対する ESB アクションチェーン経由で開始できます。
- クライアントが ESB にある 2 つ以上のプロキシエンドポイント (それぞれ、自身の WSDL または変換、ルーティング要件) に接続できるため、サービスのバージョニングが可能です。ESB は適切なメッセージを適切なエンドポイントに送信し、最終レスポンスを提供します。
- ContentBasedRouter 経由の複雑なコンテキストベースルーティング
- SOAPClient を使用して、ミラリングを行うわけではなく、外部の Web サービスを呼びだします。
- SOAPProducer は、内部デプロイされた JBoss WS サービスのみを実行します。
- HttpRouter は、簡単な WS プロキシ化には、過剰な手動設定が必要になります。
- EBWS は、SOAP エンベロープをストリッピングして、ボディにのみ渡します。
- Web サービスのプロデューサーおよびコンシューマーの両方となります。
- 必要なのは、外部 wsdl を参照するプロパティのみです。
- wsdl は、オプションの wsdlTransform プロパティを介して自動的に変換されます。
- SOAP は http とつながっているとされています。wsdl が読み込まれ、http トランスポートが定義されている場合は、それが使用されます。他のトランスポート (jms) についても検討が必要です。
- http を使用する場合、HttpRouter プロパティのいずれかがオプションでオーバーライドとして適用されます。
表12.30
| プロパティ | 説明 | 必須 |
|---|---|---|
| wsdlTransform |
柔軟な wsdl 変換ができるように <smooks-resource-list> xml 設定ファイル
| No |
| wsdlCharset |
UTF-8 でない場合、オリジナルの wsdl (インポートされたリソース) がエンコードされた文字セット。基盤のプラットフォームでサポートされたエンコーディングである場合、UTF-8 に変換されます。
| No |
| endpointUrl |
HttpRouter プロパティの例。ドメイン名を一致させることが SSL 証明書にとって重要な場合便利です。
| No |
| file |
Apache Commons HTTPClient プロパティファイル。SSL 経由で Web サービスへプロキシ化する場合に便利です。
| No |
| clientCredentialsRequired |
Basic 認証の認証情報がエンドクライアントから来る必要があるかどうか、ファイル内で指定された認証情報が代わりに使用されるかどうか。デフォルトは true です。
| No |
| wsdl |
WS エンドポイントが再書き込みされ、ESB からの新しい wsdl として公開されるオリジナルの wsdl url。
<definitions><service><port><soap:address ロケーション属性のプロトコルにあわせて、プロトコル固有の SOAPProxyTransport 実装を使用しています。
値は、5つの異種スキーマをベースに場所を参照します。
| Yes |
例12.34 設定例 - 基本的なシナリオ
<action name="proxy" class="org.jboss.soa.esb.actions.soap.proxy.SOAPProxy">
<property name="wsdl" value="http://host/foo/HelloWorldWS?wsdl"/>
</action>例12.35 設定例 - Basic 認証および SSL
<action name="proxy" class="org.jboss.soa.esb.actions.soap.proxy.SOAPProxy">
<property name="wsdl" value="https://host/foo/HelloWorldWS?wsdl"/>
<property name="endpointUrl" value="https://host/foo/HelloWorldWS"/>
<property name="file" value="/META-INF/httpclient-8443.properties"/>
<property name="clientCredentialsRequired" value="true"/>
</action>12.8. その他
12.8.1. SystemPrintln
System.out.println)。
| 入力タイプ | java.lang.String |
| クラス | org.jboss.soa.esb.actions.SystemPrintln |
| プロパティ |
|
例12.36 SystemPrintln
<action name="print-before" class="org.jboss.soa.esb.actions.SystemPrintln">
<property name="message" value="Message before action XXX" />
</action>12.8.2. SchemaValidationAction
| 入力タイプ | java.lang.String |
| クラス | org.jboss.soa.esb.actions.validation.SchemaValidationAction |
| プロパティ |
|
例12.37 SystemPrintln
<action name="val" class="org.jboss.soa.esb.actions.validation.SchemaValidationAction">
<property name="schema" value="/com/acme/validation/order.xsd"/>
</action>12.9. HttpClient 設定
# Configurators configurators=HttpProtocol,AuthBASIC # HttpProtocol config... protocol-socket-factory=org.apache.commons.httpclient.contrib.ssl.EasySSLProtocolSocketFactory keystore=/packages/jakarta-tomcat-5.0.28/conf/chap8.keystore keystore-passw=xxxxxx https.proxyHost=localhost https.proxyPort=443 # AuthBASIC config... auth-username=tomcat auth-password=tomcat authscope-host=localhost authscope-port=18443 authscope-realm=ActiveBPEL security realm
12.9.1. コンフィギュレーター
org.jboss.soa.esb.http.Configurator クラスの拡張、configure(HttpClient, Properties) メソッドの提供を行います。
表12.31 事前定義されたアクション
| コンフィギュレーター | 説明 | 必須 |
|---|---|---|
| HttpProtocol |
ソケットファクトリや SSL キーストア情報などの HttpClient ホスト、ポート、プロトコル情報の設定
| Yes |
| AuthBasic |
HttpClient に対する HTTP Basic 認証の設定
| No |
| AuthNTLM |
HttpClient に対する NTLM 認証の設定
| No |
12.9.1.1. HttpProtocol
表12.32 プロパティ
| プロパティ | 説明 | 必須 |
|---|---|---|
| HttpProtocol |
ソケットファクトリや SSL キーストア情報などの HttpClient ホスト、ポート、プロトコル情報の設定
| Yes |
| target-host-url |
http/https エンドポインの対象 URL
| Yes |
| https.proxyHost |
https 接続のプロキシホスト
| No |
| https.proxyPort |
Https 接続のプロキシポート、デフォルトのポートは 443
| No |
| http.proxyHost |
HTTP 接続のプロキシホスト
| No |
| http.proxyPort |
Http 接続のプロキシポート、デフォルトのポートは 80
| No |
| protocol-socket-factory |
ソケットファクトリのオーバーライド。
ProtocolSocketFactory または ProtocolSocketFactoryBuilder インターフェースの実装
http のデフォルト値は、httpclient
DefaultProtocolSocketFactory で、https のデフォルト値は、contributed StrictSSLProtocolSocketFactory です。
ESB コードベースで提供されている
ProtocolSocketFactoryBuilder の実装は、AuthSSLProtocolSocketFactoryBuilder と SelfSignedSSLProtocolSocketFactoryBuilder の 2 つです。それぞれ、AuthSSLProtocolSocketFactory ファクトリの設定と、自己署名の SSLContext を設定します。
| No |
| keystore |
キーストアの場所
| No |
| keystore-passw |
キーストアのパスワードまたは暗号化ファイル
| No |
| keystore-type |
キーストアのタイプ、デフォルトは jks
| No |
| truststore |
TrustStore の場所
| No |
| truststore-passw |
トラストストアのパスワードまたは暗号化ファイル
| No |
| truststore-type |
トラストストアのタイプ、デフォルトは jks
| No |
12.9.1.2. AuthBASIC
表12.33 プロパティ
| プロパティ | 説明 | 必須 |
|---|---|---|
| auth-username |
認証ユーザー名
| Yes |
| auth-password |
認証パスワード
| Yes |
| authscope-host |
認証スコープホスト
| Yes |
| authscope-port |
認証スコープポート
| Yes |
| authscope-domain |
認証スコープドメイン
| Yes |
12.9.1.3. AuthNTLM
表12.34 プロパティ
| プロパティ | 説明 | 必須 |
|---|---|---|
| ntauth-username |
認証ユーザー名
| Yes |
| ntauth-password |
認証パスワード
| Yes |
| ntauthscope-host |
認証スコープホスト
| Yes |
| ntauthscope-port |
認証スコープポート
| Yes |
| ntauthscope-domain |
認証スコープドメイン
| Yes |
| ntauthscope-realm |
認証スコープレルム
| No |

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.