Oracle® Fusion Middleware Oracle User Messaging Serviceによるアプリケーションの開発 リリース12c (12.1.2) E47999-02 |
|
前 |
次 |
この章では、ユーザー・メッセージング・サービス(UMS) EJB APIを使用したアプリケーションの開発方法、およびusermessagingsample-ejb.ear
とusermessagingsample-echo-ejb.ear
の2つのサンプル・アプリケーションの作成方法について説明します。この章の内容は次のとおりです。
注意: この章で説明するユーザー・メッセージング・サービスEJB APIは非推奨です。かわりに、第3章「ユーザー・メッセージング・サービスJava APIを使用したメッセージの送受信」で説明するユーザー・メッセージング・サービスJava APIを使用してください。 |
第2.5項「UMS Enterprise JavaBeansクライアントAPIを使用したクライアント・アプリケーションの作成」
第2.6項「UMS Enterprise JavaBeansクライアントAPIを使用したクライアント・エコー・アプリケーションの作成」
注意: Oracle User Messaging Serviceのコード・サンプルに関する詳細を参照したり、サンプルを自分で実行するには、次の場所にあるサンプルを参照してください。
|
UMS Java APIは、Enterprise JavaBeansクライアント用アプリケーションの開発をサポートします。これは、次のようにグループ化されたパッケージで構成されています。
共通およびクライアントのパッケージ
oracle.sdp.client
oracle.sdp.client.filter
: アプリケーションでMessageFilterを使用すると、配信されるメッセージをより強力に制御できます。
ユーザー・プリファレンス・パッケージ
oracle.sdp.client.userprefs
oracle.sdp.client.userprefs.tools
UMS Enterprise JavaBeansクライアントAPIを使用するJava EEアプリケーション・モジュールについては、次の2つの選択肢があります。
Enterprise JavaBeansアプリケーション・モジュール - ステートレス・セッションBean: メッセージ送受信の中核となるバック・エンドのアプリケーションです。
Webアプリケーション・モジュール - HTMLまたはWebフロント・エンドを使用するアプリケーション用です。
どちらのアプリケーション・モジュールを選択した場合でも、UMSクライアントAPIを使用してアプリケーションをUMSサーバーに登録し、次に、メッセージの送信または受信、ステータスの取得、およびアクセス・ポイントの登録または登録解除を行う操作を起動します。操作の完全なリストは、UMS Javadocを参照してください。
ソース・コードを含むサンプルは、Oracle Technology Network (OTN)から入手できます。
この項では、UMS Enterprise JavaBeansクライアントを作成するための要件を説明します。MessagingEJBClient
インスタンスは、MessagingClientFactoryクラスのコードを使用して作成できます。
UMS Enterprise JavaBeansクライアントを使用して作成したアプリケーションは、EARファイルとしてパッケージ化され、usermessagingclient-ejb.jar
モジュールがEnterprise JavaBeansモジュールとしてバンドルされている必要があります。
例2-1に、プログラミングによってMessagingEJBClient
インスタンスを作成する場合のコードを示します。
例2-1 プログラミングによるMessagingEJBClientインスタンスの作成
ApplicationInfo appInfo = new ApplicationInfo(); appInfo.setApplicationName("SampleApp"); appInfo.setApplicationInstanceName("SampleAppInstance"); MessagingClient mClient = MessagingClientFactory.createMessagingEJBClient(appInfo);
MessagingEJBClient
インスタンスは、宣言的な方法でも作成できます。宣言的な方法を使用するとデプロイメント時に変更が可能になるため、通常はこの方法をお薦めします。
Java EEモジュールのディスクリプタ(ejb-jar.xml
またはweb.xml
)には、必要なすべてのアプリケーション情報プロパティを環境エントリとして指定する必要があります。
例2-2に、宣言的な方法でMessagingEJBClient
インスタンスを作成する場合のコードを示します。
メッセージは、MessageFactory
クラスのコードおよびoracle.sdp.client
のMessage
インタフェースを使用して作成できます。
作成できるメッセージのタイプには、プレーン・テキスト・メッセージ、text/plainパートとtext/htmlパートで構成できるマルチパート・メッセージ、および異なる配信タイプを使用して、複数受信者用の単一メッセージに配信チャネル(DeliveryType
)固有のペイロードを作成するメッセージがあります。
この項では、作成できる様々なタイプのメッセージについて説明します。
例2-4に、UMS Java APIを使用してマルチパート・メッセージまたは代替メッセージを作成する方法を示します。
例2-4 UMS Java APIを使用したマルチパート・メッセージまたは代替メッセージの作成
Message message = MessageFactory.getInstance().createMessage(); MimeMultipart mp = new MimeMultipart("alternative"); MimeBodyPart mp_partPlain = new MimeBodyPart(); mp_partPlain.setContent("This is a Plain Text part.", "text/plain"); mp.addBodyPart(mp_partPlain); MimeBodyPart mp_partRich = new MimeBodyPart(); mp_partRich .setContent( "<html><head></head><body><b><i>This is an HTML part.</i></b></body></html>", "text/html"); mp.addBodyPart(mp_partRich); message.setContent(mp, "multipart/alternative");
メッセージを宛先アドレスに送信する際は、複数のチャネルが関連する場合があります。Oracle UMSアプリケーション開発者は、各チャネルに対して正しいマルチパート書式を指定する必要があります。
例2-5に、異なる配信タイプを使用して、複数受信者用の単一メッセージに、配信チャネル(DeliveryType
)固有のペイロードを作成する方法を示します。
複数ペイロードのマルチパート/代替メッセージの各最上位パートには、このヘッダーの値が1つ以上含まれている必要があります。このヘッダーの値は、有効な配信タイプの名前である必要があります。DeliveryTypeの使用可能な値は、列挙DeliveryTypeを参照してください。
例2-5 異なる配信タイプを使用した、複数受信者用の単一メッセージへの配信チャネル固有のペイロード作成
Message message = MessageFactory.getInstance().createMessage(); // create a top-level multipart/alternative MimeMultipart object. MimeMultipart mp = new MimeMultipart("alternative"); // create first part for SMS payload content. MimeBodyPart part1 = new MimeBodyPart(); part1.setContent("Text content for SMS.", "text/plain"); part1.setHeader(Message.HEADER_NS_PAYLOAD_PART_DELIVERY_TYPE, "SMS"); // add first part mp.addBodyPart(part1); // create second part for EMAIL and IM payload content. MimeBodyPart part2 = new MimeBodyPart(); MimeMultipart part2_mp = new MimeMultipart("alternative"); MimeBodyPart part2_mp_partPlain = new MimeBodyPart(); part2_mp_partPlain.setContent("Text content for EMAIL/IM.", "text/plain"); part2_mp.addBodyPart(part2_mp_partPlain); MimeBodyPart part2_mp_partRich = new MimeBodyPart(); part2_mp_partRich.setContent("<html><head></head><body><b><i>" + "HTML content for EMAIL/IM." + "</i></b></body></html>", "text/html"); part2_mp.addBodyPart(part2_mp_partRich); part2.setContent(part2_mp, "multipart/alternative"); part2.addHeader(Message.HEADER_NS_PAYLOAD_PART_DELIVERY_TYPE, "EMAIL"); part2.addHeader(Message.HEADER_NS_PAYLOAD_PART_DELIVERY_TYPE, "IM"); // add second part mp.addBodyPart(part2); // set the content of the message message.setContent(mp, "multipart/alternative"); // set the MultiplePayload flag to true message.setMultiplePayload(true);
この項では、アドレスのタイプおよびAddressオブジェクトの作成方法について説明します。
アドレスには、デバイス・アドレスとユーザー・アドレスの2種類があります。デバイス・アドレスには、電子メール・アドレス、インスタント・メッセージ・アドレス、電話番号など、様々なタイプがあります。ユーザー・アドレスは、ユーザー・リポジトリにあるユーザーIDです。
Address
インタフェースで定義するAddress
オブジェクトは、AddressFactory
クラスを使用してメッセージの送信者と受信者のアドレスを指定することで作成できます。
Oracle UMSを使用すると、メッセージ・ステータスを同期または非同期で取得できます。
現行ステータスの同期取得を実行するには、MessagingClient
APIから次のフローを使用します。
String messageId = messagingClient.send(message); Status[] statuses = messagingClient.getStatus(messageId);
または、
Status[] statuses = messagingClient.getStatus(messageId, address[]) --- where address[] is an array of one or more of the recipients set in the message.
この項では、アプリケーションでメッセージを受信する方法について説明します。メッセージを受信するには、最初にアクセス・ポイントを登録する必要があります。アプリケーション側から見ると、メッセージを受信するモードには同期と非同期があります。
AccessPoint
は、着信メッセージを受信するための1つ以上のデバイス・アドレスを表します。着信メッセージを受信するアプリケーションでは、メッセージの受信者アドレスを表すアクセス・ポイントを1つ以上登録する必要があります。サーバーでは、着信メッセージの受信者アドレスと一連の登録済アクセス・ポイントを照合し、一致したアクセス・ポイントを登録したアプリケーションに、その着信メッセージをルーティングします。
AccessPointFactory.createAccessPoint
を使用してアクセス・ポイントを作成し、MessagingClient.registerAccessPoint
を使用してそのアクセス・ポイントをメッセージの受信用に登録します。
電子メールのアクセス・ポイントを登録するには、次のように指定します。
Address apAddress = MessagingFactory.createAddress("EMAIL:user1@example.com"); AccessPoint ap = MessagingFactory.createAccessPoint(apAddress); MessagingClient.registerAccessPoint(ap);
番号9000
のSMSアクセス・ポイントを登録するには、次のように指定します。
AccessPoint accessPointSingleAddress = AccessPointFactory.createAccessPoint(AccessPoint.AccessPointType.SINGLE_ADDRESS, DeliveryType.SMS, "9000"); messagingClient.registerAccessPoint(accessPointSingleAddress);
番号が9000
から9999
の範囲内のSMSアクセス・ポイントを登録するには、次のように指定します。
AccessPoint accessPointRangeAddress = AccessPointFactory.createAccessPoint(AccessPoint.AccessPointType.NUMBER_RANGE, DeliveryType.SMS,"9000,9999"); messagingClient.registerAccessPoint(accessPointRangeAddress);
メッセージの同期受信には、メソッドMessagingClient.receive
を使用できます。このメソッドは、メッセージの非同期受信による構成オーバーヘッドを望まない軽量なクライアント向けの便利なポーリング・メソッドです。このメソッドは、アプリケーションのインバウンド・キューですぐに使用できるメッセージのリストを戻します。このメソッドは非ブロック・コールを実行するため、現在使用できるメッセージがない場合はNULLを戻します。
注意: 1回の起動で、使用可能なメッセージがすべて取得される保証はありません。ポーリングして、使用可能なすべてのメッセージを受信したことを確認する必要があります。 |
非同期受信には、MDBの構成、ステートレス・セッションBeanメッセージ・リスナーの記述など、多数のタスクが関連しています。詳細な手順については、サンプル・アプリケーションusermessagingsample-echoを参照してください。
アプリケーションでMessageFilter
を使用すると、配信されるメッセージをより強力に制御できます。MessageFilter
には、一致基準とアクションが含まれています。アプリケーションでは、一連のメッセージ・フィルタを登録できます。登録されたメッセージ・フィルタは、着信(受信)メッセージに順に適用され、メッセージが基準と一致するとアクションが実行されます。たとえば、アプリケーションでMessageFilters
を使用して必要なブラックリストを実装すると、指定した送信者アドレスからのすべてのメッセージを拒否できます。
MessageFilterFactory.createMessageFilter
を使用してメッセージ・フィルタを作成し、MessagingClient.registerMessageFilter
を使用してそのメッセージ・フィルタを登録できます。フィルタは、アプリケーションの現行フィルタ・チェーンの最後に追加されます。受信したメッセージは、フィルタ・チェーンを順に通過します。メッセージがフィルタの基準に一致すると、そのフィルタのアクションが即時に実行されます。メッセージがフィルタに一致しない場合のデフォルト・アクションでは、そのメッセージが受信されてアプリケーションに配信されます。たとえば、件名が"spam"
のメッセージを拒否するには、次のように指定します。
MessageFilter subjectFilter = MessageFilterFactory.createMessageFilter("spam", MessageFilter.FieldType.SUBJECT, null, MessageFilter.Action.REJECT); messagingClient.registerMessageFilter(subjectFilter);
電子メール・アドレスspammer@foo.com
からのメッセージを拒否するには、次のように指定します。
MessageFilter senderFilter = MessageFilterFactory.createBlacklistFilter("spammer@foo.com"); messagingClient.registerMessageFilter(senderFilter);
この項では、usermessagingsampleというアプリケーションの作成方法について説明します。このアプリケーションは、アウトバウンド・メッセージングおよびメッセージ・ステータスの同期取得の両方に対してUMS Enterprise JavaBeansクライアントAPIを使用するWebクライアント・アプリケーションです。usermessagingsampleはインバウンド・メッセージングもサポートしています。デプロイして構成したusermessagingsampleを使用すると、電子メール・クライアントにメッセージを送信できます。
注意: Oracle User Messaging Serviceのコード・サンプルに関する詳細を参照したり、サンプルを自分で実行するには、Oracle SOA Suiteのサンプルを参照してください。 このページにナビゲートした後は、検索条件の「UMS」を入力して「検索」をクリックすることで、Oracle User Messaging Serviceのコード・サンプルを検出できます。 |
第2.1.1項「Java EEアプリケーション・モジュールの作成」で説明した2つのアプリケーション・モジュール選択肢の内、このサンプルはWebアプリケーション・モジュール(WAR)に重点を置き、いくつかのHTMLフォームとサーブレットを定義します。Webアプリケーション・モジュールのコードと対応するXMLファイルは、提供されているusermessagingsample-src.zip
ソースから使用できます。サーブレットでは、UMS Enterprise JavaBeansクライアントAPIを使用して、UMS Enterprise JavaBeansクライアント・インスタンスを作成し(次に、アプリケーションの情報を登録します)、メッセージを送信します。
このアプリケーションはusermessagingsample-ejb.earというEnterprise Archive (EAR)ファイルとしてパッケージ化されており、その構造は次のとおりです。
usermessagingsample-ejb.ear
META-INF
application.xml
-- すべてのアプリケーション・モジュール用のディスクリプタ・ファイル。
weblogic-application.xml
-- oracle.sdp.client
共有ライブラリのimport
を含むディスクリプタ・ファイル。
usermessagingclient-ejb.jar
-- メッセージEnterprise JavaBeansクライアントのデプロイメント・ディスクリプタが格納されます。
META-INF
ejb-jar.xml
weblogic-ejb-jar.xml
usermessagingsample-web.ear
-- Webベースのフロント・エンドおよびサーブレットが格納されます。
WEB-INF
web.xml
weblogic.xml
ビルトインのサンプル・アプリケーションおよびソース・コード(usermessagingsample-src.zip)は、OTNで入手できます。
Oracle User Messaging Serviceの電子メール・ドライバを有効にしてアウトバウンド・メッセージングおよびステータスの取得を実行するには、電子メール・ドライバを次のように構成します。
OutgoingMailServer
プロパティの値として、SMTPメール・サーバーの名前を入力します。
注意: このサンプル・アプリケーションは汎用的であるため、適切なメッセージング・ドライバがデプロイされて構成されている場合は、他のチャネル経由のアウトバウンド・メッセージングもサポートできます。 |
この項では、Windowsベース・ビルドのJDeveloperを使用して、usermessagingsampleを作成、コンパイルおよびデプロイする手順を説明します。
Oracle JDeveloperで、usermessagingsample.jws
(.zipファイルに含まれています)を開きます。
Oracle JDeveloperのメイン・ウィンドウにプロジェクトが表示されます。
Webモジュールで「Oracle UMS Client」ライブラリが使用されていることを確認して、サンプル・アプリケーションのビルド依存性を満たします。
「アプリケーション・ナビゲータ」で、Webモジュール「usermessagingsample-web」を右クリックし、「プロジェクト・プロパティ」を選択します。
左側のペインで、「ライブラリとクラスパス」を選択します。
「OK」をクリックします。
usermessagingclient-ejbプロジェクトがアプリケーションに存在していることを確認します。これは、UMSアプリケーションで使用するメッセージング・クライアントBeanをパッケージ化したEnterprise JavaBeansモジュールです。このモジュールによって、アプリケーションはUMSサーバーに接続できます。
usermessagingsample-webプロジェクトの下にあるJavaファイルを検索し、メッセージング・クライアントAPIを使用してメッセージの送信、ステータスの取得およびメッセージの同期受信を実行する方法を確認します。UMSサーバーに登録されるアプリケーション情報は、プロジェクトのSampleUtils.java
にプログラムによって指定されます(例2-10)。
アプリケーションをデプロイする手順は、次のとおりです。
ナビゲーション・ペインでアプリケーションを右クリックし、「新規」を選択して、アプリケーション・サーバー接続を作成します。第2.7項「新規アプリケーション・サーバー接続の作成」の説明に従います。
アプリケーションをデプロイするには、「usermessagingsample application」→「デプロイ」→「usermessagingsample」→「デプロイ先」→「SOA_server」の順に選択します(図2-3)。
メッセージBuild Successful
がログに表示されていることを確認します。
メッセージDeployment Finished
がデプロイメント・ログに表示されていることを確認します。
アプリケーションが正常にデプロイされました。
サンプルを実行するには、その前に、Oracle User Messaging Serviceの追加ドライバを構成し、必要に応じて、ユーザー通信プリファレンスでメッセージを受信するユーザー用のデフォルト・デバイスを構成する必要があります。
注意: 詳細は、『Oracle User Messaging Serviceの管理』を参照してください。 |
Oracle WebLogic Serverの実行中のインスタンスにusermessagingsampleをデプロイした後は、次の手順を実行します。
Webブラウザを起動し、サンプル・アプリケーションのアドレスをhttp://
host
:http-port
/usermessagingsample/
と入力します。たとえば、ブラウザのナビゲーション・バーにhttp://localhost:7001/usermessagingsample/
と入力します。
プロンプトが表示された場合は、ログイン資格証明を入力します。たとえば、ユーザー名はweblogic
と入力します。メッセージ・サンプルをテストするためのブラウザ・ページが表示されます(図2-4)。
サンプル・メッセージの送信をクリックします。「メッセージの送信」ページが表示されます(図2-5)。
(オプション)送信者アドレスを次の書式で入力します。
Email:
sender_address
たとえば、Email:sender@example.com
と入力します。
受信者アドレスを1つ以上入力します。たとえば、Email:recipient@example.com
と入力します。複数のアドレスを入力する場合は、次のようにカンマ区切りリストで入力します。
Email:
recipient_address1
,
Email:
recipient_address2
ユーザー通信プリファレンスを構成している場合、メッセージのアドレスは単にUser:
username
と指定できます。たとえば、User:testuser1
と入力します。
(オプション)件名、つまり電子メールの内容を入力します。
「送信」をクリックします。メッセージ・ステータス・ページが表示され、トランザクションの進捗が表示されます(図2-6には、メッセージング・エンジンが受信して処理するメッセージが表示されています)。
リフレッシュをクリックしてステータスを更新します。電子メール・メッセージが電子メール・サーバーに配信されると、「ステータスの内容」フィールドに「リモート・ゲートウェイへのアウトバウンド・メッセージの配信に成功しました。」と表示されます。
この項では、usermessagingsample-echoというアプリケーションの作成方法について説明します。このアプリケーションは、UMS Enterprise JavaBeansクライアントAPIを使用して、電子メール・アドレスからメッセージを非同期で受信し、リプライを送信者にエコーして戻すデモ・クライアント・アプリケーションです。
注意: Oracle User Messaging Serviceのコード・サンプルに関する詳細を参照したり、サンプルを自分で実行するには、Oracle SOA Suiteのサンプルを参照してください。 このページにナビゲートした後は、検索条件の「UMS」を入力して「検索」をクリックすることで、Oracle User Messaging Serviceのコード・サンプルを検出できます。 |
このアプリケーションはusermessagingsample-echo-ejb.earというEnterprise Archive (EAR)ファイルとしてパッケージ化されており、その構造は次のとおりです。
usermessagingsample-echo-ejb.ear
META-INF
application.xml
-- すべてのアプリケーション・モジュール用のディスクリプタ・ファイル。
weblogic-application.xml
-- oracle.sdp.client
共有ライブラリのimport
を含むディスクリプタ・ファイル。
usermessagingclient-ejb.jar
-- メッセージEnterprise JavaBeansクライアントのデプロイメント・ディスクリプタが格納されます。
META-INF
ejb-jar.xml
weblogic-ejb-jar.xml
usermessagingsample-echo-ejb.jar
-- 受信したメッセージを処理してエコー・レスポンスを戻すアプリケーション・セッションBean (ClientSenderBean、ClientReceiverBean)が格納されます。
META-INF
ejb-jar.xml
weblogic-ejb-jar.xml
usermessagingsample-echo-web.war
-- Webベースのフロント・エンドおよびサーブレットが格納されます。
WEB-INF
web.xml
weblogic.xml
ビルトインのサンプル・アプリケーションおよびソース・コード(usermessagingsample-echo-src.zip
)は、OTNで入手できます。
次の各項では、usermessagingsample-echo-ejb.ear
を例にして、非同期のインバウンドおよびアウトバウンド・メッセージング機能を持つアプリケーションの作成プロセスを説明します。
Oracle User Messaging Serviceの電子メール・ドライバを有効にしてインバウンドやアウトバウンド・メッセージングおよびステータスの取得を実行するには、電子メール・ドライバを次のように構成します。
OutgoingMailServerプロパティの値として、SMTPメール・サーバーの名前を入力します。
IncomingMailServerプロパティの値として、IMAP4/POP3メール・サーバーの名前を入力します。受信ユーザー名とパスワードも構成します。
注意: このサンプル・アプリケーションは汎用的であるため、適切なメッセージング・ドライバがデプロイされて構成されている場合は、他のチャネル経由のインバウンドおよびアウトバウンド・メッセージングもサポートできます。 |
この項では、Windowsベース・ビルドのJDeveloperを使用して、usermessagingsample-echoを作成、コンパイルおよびデプロイする手順を説明します。
usermessagingsample.echo-src.zip
をJDEV_HOME
/communications/
samples/
ディレクトリに解凍します。共有ライブラリ参照をプロジェクトで有効にするには、このディレクトリを使用する必要があります。
注意: 別のディレクトリを使用する場合は、oracle.sdp.clientライブラリ・ソース・パスを |
Oracle JDeveloperで、usermessagingsample-echo.jws
(.zipファイルに含まれています)を開きます。
Oracle JDeveloperのメイン・ウィンドウにプロジェクトが表示されます(図2-7)。
次のライブラリがusermessagingsample-echo-web
およびusermessagingsample-echo-ejb
モジュールに追加されていることを確認して、サンプル・アプリケーションのビルド依存性が満たされていることを確認します。
ライブラリ: oracle.sdp.client、クラスパス: JDEV_HOME
/
communications/modules/oracle.sdp.client_12.1.2/
sdpclient.jar
。これはJavaライブラリで、UMS、およびUMSを使用してメッセージを送受信するアプリケーションで使用されます。
各モジュールに対して次の手順を実行します。
「アプリケーション・ナビゲータ」で、モジュールを右クリックし、「プロジェクト・プロパティ」を選択します。
左側のペインで、「ライブラリとクラスパス」を選択します(図2-8)。
「OK」をクリックします。
usermessagingclient-ejbプロジェクトがアプリケーションに存在していることを確認します。これは、UMSアプリケーションで使用するメッセージング・クライアントBeanをパッケージ化したEnterprise JavaBeansモジュールです。このモジュールによって、アプリケーションはUMSサーバーに接続できます。
usermessagingsample-echo-ejbプロジェクトの下にあるJavaファイルを検索し、メッセージング・クライアントAPIを使用して非同期でメッセージを受信(ClientReceiverBean
)したり、メッセージを送信(ClientSenderBean
)する方法を確認します。
usermessagingsample-echo-webプロジェクトの下にあるJavaファイルを検索し、メッセージング・クライアントAPIを使用してアクセス・ポイントを登録および登録解除する方法を確認します。
UMSサーバーに登録したアプリケーション情報は、usermessagingclient-ejbプロジェクトのejb-jar.xml
ファイルに宣言的に指定されることに注意してください(例2-11)。
例2-11 アプリケーション情報
<env-entry> <env-entry-name>sdpm/ApplicationName</env-entry-name> <env-entry-type>java.lang.String</env-entry-type> <env-entry-value>UMSEchoApp</env-entry-value> </env-entry> <env-entry> <env-entry-name>sdpm/ApplicationInstanceName</env-entry-name> <env-entry-type>java.lang.String</env-entry-type> <env-entry-value>UMSEchoAppInstance</env-entry-value> </env-entry> <env-entry> <env-entry-name>sdpm/ReceivingQueuesInfo</env-entry-name> <env-entry-type>java.lang.String</env-entry-type> <env-entry-value>OraSDPM/QueueConnectionFactory:OraSDPM/Queues/OraSDPMAppDefRcvQ1< /env-entry-value> </env-entry> <env-entry> <env-entry-name> sdpm/MessageListenerSessionBeanJNDIName </env-entry-name> <env-entry-type>java.lang.String</env-entry-type> <env-entry-value> ejb/umsEchoApp/ClientReceiverLocal</env-entry-value> </env-entry> <env-entry> <env-entry-name> sdpm/MessageListenerSessionBeanHomeClassName</env-entry-name> <env-entry-type>java.lang.String</env-entry-type> <env-entry-value> oracle.sdp.client.sample.ejbApp.ClientReceiverHomeLocal </env-entry-value> </env-entry> <env-entry> <env-entry-name> sdpm/StatusListenerSessionBeanJNDIName </env-entry-name> <env-entry-type>java.lang.String</env-entry-type> <env-entry-value>ejb/umsEchoApp/ClientReceiverLocal</env-entry-value> </env-entry> <env-entry> <env-entry-name>sdpm/StatusListenerSessionBeanHomeClassName</env-entry-name> <env-entry-type>java.lang.String</env-entry-type> <env-entry-value>oracle.sdp.client.sample.ejbApp.ClientReceiverHomeLocal</env-e ntry-value> </env-entry>
アプリケーション名(UMSEchoApp
)とアプリケーション・インスタンス名(UMSEchoAppInstance
)は、MessageDispatcherBean
MDBのメッセージ・セレクタでも使用されることに注意してください。このメッセージ・セレクタは、アプリケーション受信キューに配置されたメッセージとステータスの非同期受信で使用されます(例2-12)。
例2-12 アプリケーション情報
<activation-config-property> <activation-config-property-name> messageSelector </activation-config-property-name> <activation-config-property-value> appName='UMSEchoApp' or sessionName='UMSEchoApp-UMSEchoAppInstance' </activation-config-property-value> </activation-config-property>
注意: 自身のアプリケーションに対して別のアプリケーション名とアプリケーション・インスタンス名を選択した場合は、このメッセージ・セレクタを更新する必要があります。そうしないと、非同期受信が機能しません。 |
アプリケーションをデプロイする手順は、次のとおりです。
ナビゲーション・ペインでアプリケーションを右クリックし、「新規」を選択して、アプリケーション・サーバー接続を作成します。第2.7項「新規アプリケーション・サーバー接続の作成」の説明に従います。
アプリケーションをデプロイするには、「usermessagingsample-echo application」→「デプロイ」→「usermessagingsample-echo」→「デプロイ先」→「SOA_server」の順に選択します(図2-9)。
メッセージBuild Successful
がログに表示されていることを確認します。
メッセージDeployment Finished
がデプロイメント・ログに表示されていることを確認します。
アプリケーションが正常にデプロイされました。
サンプルを実行するには、その前に、Oracle User Messaging Serviceの追加ドライバを構成し、必要に応じて、ユーザー通信プリファレンスでメッセージを受信するユーザー用のデフォルト・デバイスを構成する必要があります。
注意: 詳細は、『Oracle User Messaging Serviceの管理』を参照してください。 |
Oracle WebLogic Serverの実行中のインスタンスにusermessagingsample-echoをデプロイした後は、次の手順を実行します。
Webブラウザを起動し、サンプル・アプリケーションのアドレスをhttp://
host
:
http-port
/usermessagingsample-echo/
と入力します。たとえば、ブラウザのナビゲーション・バーにhttp://localhost:7001/usermessagingsample-echo/
と入力します。
プロンプトが表示された場合は、ログイン資格証明を入力します。たとえば、ユーザー名はweblogic
と入力します。メッセージ・サンプルをテストするためのブラウザ・ページが表示されます(図2-10)。
アクセス・ポイントの登録/登録解除をクリックします。「アクセス・ポイントの登録」ページが表示されます(図2-11)。
アクセス・ポイントのアドレスを次の書式で入力します。
EMAIL:
server_address
たとえば、EMAIL:myserver@example.com
と入力します。
アクションとして登録を選択し、送信をクリックします。登録ステータス・ページが表示され、図2-12に示すように登録済と表示されます。
メッセージ・クライアント(電子メールの場合は電子メール・クライアント)から、前の手順でアクセス・ポイントとして登録したアドレスに、メッセージを送信します。
該当するチャネル用のUMSメッセージング・ドライバが正しく構成されている場合は、usermessagingsample-echoアプリケーションから戻されるエコー・メッセージを受信できるはずです。
第A.3項「新規アプリケーション・サーバー接続の作成」の手順を実行し、アプリケーション・サーバー接続を作成します。