アプリケーションが Web メッセージング・サービスを使用するように構成される場合、情報をブラウザー・クライアントに公開するには複数の方法があります。
このトピックでは、ブラウザー・クライアント公開と Web アプリケーションによる公開について説明します。
最初の方法は、ブラウザーを介したクライアント公開です。公開は Bayeux プロトコルの一部です。ブラウザーから公開すると、別のスタイルの Web アプリケーションが使用可能になります。チャットや在席情報の Web ページへの埋め込み、共同で Web 編集するためのアプリケーション、ゲーム・アプリケーションなどがその例です。 クライアント公開を許可するには、Web メッセージング構成ファイルの clientCanPublish オプションを
trueに設定する必要があります。ブラウザー内で公開するコードは、以下の Dojo Toolkit の cometd クライアントの例に似ています。
dojox.cometd.publish("/testtopic", { test: "data"}); |
2 番目の方法は、JavaTM Platform, Enterprise Edition (Java EE) アプリケーションを使用して Web メッセージング・クライアントに公開する方法です。Web メッセージング・サービスはメッセージの公開と配信のために、 クライアントをサービス統合バスにブリッジします。Web クライアントに送信する必要があるメッセージは、サービス統合バスを使用してルーティングしなければなりません。標準的な J2EE サービス統合バス公開メソッドを使用する必要があります。 これらの標準的なメソッドはエンタープライズ Bean やサーブレットで使用できます。 詳しくは、サービス統合バスの公開のセクションを参照してください。
Web メッセージング・クライアントへの公開を容易にするために、Web メッセージング・アプリケーションのユーティリティー・ライブラリーに公開 API が提供されています。 標準的な JMS 公開メソッドの場合とは対照的に、Web メッセージング・クライアントへのパブリッシュは、公開 API を使用すると簡単になります。こうした簡素化には、Bayeux のチャネルからサービスへの統合トピック・マッピングおよび、対応 JMS メッセージ・タイプの簡単な識別などが含まれます。公開 API を使用する場合には以下のステップを実行してください。
<servlet> <display-name>Publisher</display-name> <servlet-name>Publisher</servlet-name> <servlet-class> com.ibm.websphere.webmsg.publisher.jndijms.JmsPublisherServlet </servlet-class> <init-param> <param-name>CONNECTION_FACTORY_JNDI_NAME</param-name> <param-value>java:comp/env/jms/QuotePublish</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> |
Publisher publisher = (Publisher)servletContext.getAttribute(JmsPublisherServlet.PUBLISHER_SERVLET_CONTEXT_KEY); if (publisher == null) { throw new ServletException("Publisher servlet not initialized, or not initialized before app"); } try { publisher.publish(new BayeuxJmsTextMsg(s.getTopic(), data)); } catch (PublisherException e){ logger.log(Level.WARNING, "Error publishing simulated data. Msg: " + e.toString()); } |
公開 API の使用例については、QuoteStreamer アプリケーションを参照してください。Web メッセージング公開 API について詳しくは、公開 API 資料を参照してください。