13.3.13. SmooksAction


org.jboss.soa.esb.smooks.SmooksAction クラスは、Smooks プロセスを実行するための第 2 世代アクションクラスです。(単にメッセージを変換できないことに注意してください)。
SmooksAction クラスは、Smooks PayloadProcessor を使用して幅広いメッセージペイロードを処理できます。これには、文字列、バイトアレイ、InputStreams、リーダー、POJO などが含まれます。そのため、Java から Java への変換など、幅広い変換を実行できます。また、コンテンツベースのペイロードの分割やルーティングなど、ソースメッセージストリームで他のタイプの操作も実行できます(これは Warehouse メッセージルーティングと同じではないことに注意してください)。SmooksAction は、JBoss Enterprise SOA Platform 内から幅広い Smooks 機能を有効にします。
重要
Smooks は、ベース <resource-config> を介して行われたリソース設定の特定のタイプの設定エラーを検出(および報告)しないことに注意してください。たとえば、リソース(<resource>)が Smooks Visitor 実装で、Visitor クラスの名前が間違っている場合、Smooks はスペルがクラスであることが分からないため、エラーとしてこれを送出しません。Smooks は Java Visitor 実装だけでなく、さまざまな種類のリソースをサポートすることに注意してください。
この問題を回避する最も簡単な方法は、追加設定なしのすべての機能に拡張された Smooks 設定 namespace を使用することです。たとえば、org.milyn.javabean.BeanPopulator <resource-config> 設定を定義して Java バインディング設定を定義する代わりに、設定 namespace (つまり <jb:bean> 設定など)を使用 http://www.milyn.org/xsd/smooks/javabean-1.2.xsd します。
Smooks Visitor 機能を実装している場合、この問題を回避する最も簡単な方法は、この新しいリソースタイプの拡張設定名前空間領域を定義することです。また、JBoss Developer Studio に組み込まれているスキーマサポートを活用できるため、新しいリソースの設定を容易にするという利点があります。
以下は、基本的な SmooksAction 設定を示しています。

例13.10 SmooksAction

<action name="transform" class="org.jboss.soa.esb.smooks.SmooksAction">
    <property name="smooksConfig" value="/smooks/order-to-java.xml" />
</action>
Copy to Clipboard Toggle word wrap
オプションの設定プロパティーを以下に示します。
Expand
表13.9 SmooksAction オプション設定プロパティー
プロパティー 説明 デフォルト
get-payload-location
メッセージペイロードを含むメッセージボディーの場所。
デフォルトのペイロードの場所
set-payload-location
結果ペイロードが配置されるメッセージボディーの場所。
デフォルトのペイロードの場所
mappedContextObjects
ESB メッセージボディーの EXECUTION_CONTEXT_ATTR_MAP_KEY にマップされる Smooks ExecutionContext オブジェクトのコンマ区切りリスト。デフォルトは空のリストです。オブジェクトは Serializable である必要があります。
resultType
結果メッセージペイロードとして設定する結果のタイプ。
STRING
javaResultBeanId
場合にのみ関連します。 resultType=JAVA
resultType が JAVA の場合に結果としてマッピングされる Smooks Bean コンテキスト beanId。指定されていない場合、Bean コンテキスト Bean Map 全体が JAVA の結果としてマッピングされます。
reportPath
Smooks Execution Report を生成するためのパスおよびファイル名。これは開発の支援であり、実稼働環境では使用しないでください。
SmooksAction は MessagePayloadProxy クラスを使用して、ペイロードを取得およびメッセージに設定します。そのため、get-payload-location および set-payload-location アクションプロパティーで特に設定されていない限り、SmooksAction は Message.getBody ().get ()および Message.getBody ().set (Object)メソッドを使用してデフォルトのメッセージの場所で Message ペイロードを取得し、設定します。
提供されたメッセージペイロードが String、InputStream、Reader、または byte[] のいずれかではない場合、SmooksAction はペイロードを JavaSource として処理し、Java-to-XML および Java から Java への変換を実行できます。

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat