Red Hat Training
A Red Hat training course is available for JBoss Enterprise SOA Platform
4.2.6. メッセージヘッダーの形式
これは、メッセージヘッダーの形式です。
public interface Header { public Call getCall (); public void setCall (Call call); }
メッセージヘッダーの内容は、
org.jboss.soa.esb.addressing.Call
クラスのインスタンスに含まれています。
public class Call { public Call (); public Call (EPR epr); public Call (Call copy); public void setTo (EPR epr); public EPR getTo () throws URISyntaxException; public void setFrom (EPR from); public EPR getFrom () throws URISyntaxException; public void setReplyTo (EPR replyTo); public EPR getReplyTo () throws URISyntaxException; public void setFaultTo (EPR uri); public EPR getFaultTo () throws URISyntaxException; public void setRelatesTo (URI uri); public URI getRelatesTo () throws URISyntaxException; public void copy(); public void setAction (URI uri); public URI getAction () throws URISyntaxException; public final boolean empty(); public void setMessageID (URI uri); public URI getMessageID () throws URISyntaxException; public String toString(); public String stringForum(); public boolean valid(); public void copy (Call from); }
org.jboss.soa.esb.addressing.Call
クラスは、一方向および要求と応答の両方の相互作用パターンをサポートします。
表4.1 org.jboss.soa.esb.addressing.Call
プロパティー
プロパティー | タイプ | 必須 | Description |
---|---|---|---|
終了 | EPR | はい | メッセージ受信者のアドレス。 |
From | EPR | いいえ | メッセージの発信元のエンドポイント。 |
ReplyTo | EPR | いいえ | このメッセージへの返信が送られる受信者を識別するエンドポイント参照。返信が必要な場合は、メッセージに ReplyTo が含まれている必要があります。送信者は、ReplyTo の内容を使用して返信メッセージを作成する必要があります。ReplyTo が存在しない場合には、From の内容を使用してソースへのメッセージを作成できます。メッセージに意味のある返信がない場合には、このプロパティーは存在しない可能性があります。このプロパティーが存在する場合、MessageID プロパティーは必須です。 |
FaultTo | EPR | いいえ | このメッセージに関する問題が送られる受信者を識別するエンドポイント参照。障害メッセージを作成する場合には、送信者は、応答するメッセージの FaultTo の内容を使用して、障害メッセージを作成する必要があります。FaultTo が存在しない場合、送信者は ReplyTo の内容を使用して障害メッセージを作成できます。FaultTo と ReplyTo の両方が存在しない場合には、送信者は From の内容を使用して障害メッセージを作成できます。送信者が障害メッセージを受信できない場合 (たとえば、一方向のアプリケーションメッセージである場合)、このプロパティーは存在しない可能性があります。このプロパティーが存在する場合、MessageID プロパティーは必須です。 |
アクション | URI | はい | このメッセージが意味するセマンティクスを一意に (そして不透明に) 区別する識別子。 |
MessageID | URI | 状況により異なる | このメッセージを時間と空間で一意に識別する URI。アプリケーションのインテントが異なる 2 つのメッセージでは、[MessageID] プロパティーを共有できません。メッセージは、通信障害など、あらゆる目的で再送信される可能性があり、同じ MessageID プロパティーを使用する可能性があります。このプロパティーの値は、同等以上の解釈が定義されていない不透明な URI です。返信が必要な場合は、このプロパティーが存在する必要があります。 |
サービスを開発および使用するときは、ヘッダーのロールを常に考慮してください。たとえば、リクエストとレスポンスに基づく同期対話パターンが必要な場合は、必ずReplyTo フィールドまたはデフォルトのエンドポイント参照を使用するようにしてください。リクエスト/レスポンスであっても、レスポンスを元の送信者に戻す必要はありません。同様に、一方向 (応答なし) のメッセージを送信する場合は、ReplyTo フィールドは無視されるので、設定しないでください。
警告
EPR の内部形式は API の実装に固有のものであるため、EPR の内部形式に直接依存しないようにしてください。この形式を同じ状態で確保できる保証はありません。
注記
メッセージヘッダーは、メッセージと共に形成されます。エンドポイント間で転送されると、不変になります。インターフェイスは受信者が個々の値を変更できるようにしますが、JBoss Enterprise SOA Platform はそのような変更を無視します。(今後のリリースでは、アプリケーションプログラミングインターフェイスでも、明確性を向上するため、このような変更が禁止される可能性があります。) これらの規則は、WS-Addressing 標準に記載されています。