HTTPサンプルプログラムを実行するには、まず、ORBのHTTPトンネルサーブレットをインストールする必要があります。このサンプルは、次の2つのセクションに分かれています。
サーブレットコンテナにトンネルがインストールされている場合、最初の手順を飛ばしても構いません。1 HTTPトンネルのインストール
ORBのHTTPトンネルは、任意のサーブレットコンテナにインストールできる標準サーブレットです。このトンネルは、たとえば、Novell eXtend Application ServerやTomcatにインストールできます。システムにおけるORBのインストールに応じて、適切なインストール方法を選択する必要があります。
- ORBがサーブレットコンテナにより使用されるJREにJava 2拡張としてインストールされている場合、非常に簡単な
web.xml
ファイルを作成して、小さなWARファイルをパッケージ化する必要があります。Java 2拡張で、拡張にあるクラスだけをロードできる場合、servlet.jar
ファイルをその拡張(通常はjre/lib/ext
ディレクトリ)にもコピーする必要があります。- ORBがJava 2拡張としてインストールされていない場合、
mp-orb.jar
ファイルとORBライセンスファイルを含むWARファイルを作成する必要があります。アーカイブの構造は次のようになります。WEB-INF | +--- web.xml | +--- lib | +--- mp-orb.jar | +--- license.jarこのWARの作成例については、build.{sh,bat}
を参照してください。WARファイルを作成したら、サーブレットコンテナにインストールする必要があります。
SilverCmd
ユーティリティについては、Novell eXtend Application Serverのマニュアルを参照してください。Novell eXtend Application Serverに配備する場合、jb_tunnel_deploy_plan.xml
配備プランを使用できます。Tomcatでは、WARをwebapps
ディレクトリにコピーして、Tomcatを再起動する必要があります。2 クライアントの実行
クライアント側では、IIOPまたはHTTPのいずれを使用して実行しても大きな違いはありません(パフォーマンスは除く)。ただし、クライアントは、トンネルが使用されるランタイムを指示するには、
ORBHttpTunnelURL
コマンドラインプロパティを指定する必要があります。 このプロパティの値は、ORBのHTTPトンネルサーブレットが実行されているURLです。
Client
クラスのソースは、次のとおりです。package http; import javax.naming.InitialContext; import javax.jms.Queue; import javax.jms.Session; import javax.jms.TextMessage; import javax.jms.QueueSender; import javax.jms.QueueSession; import javax.jms.QueueReceiver; import javax.jms.QueueConnection; import javax.jms.QueueConnectionFactory; /** This client should be run with the ORBHttpTunnelURL property.たとえば、次のように入力します。jmqrun -J-DORBHttpTunnelURL=http://titus:80/tunnel http.Client*/ public class Client { public static void main(String[] args) throws Exception { | // get the initial context | InitialContext ctx = new InitialContext(); | | // lookup the queue object | Queue queue = (Queue) ctx.lookup("queue/queue0"); | | // lookup the queue connection factory | QueueConnectionFactory connFactory = (QueueConnectionFactory) ctx. | lookup("queue/connectionFactory"); | | // create a queue connection | QueueConnection queueConn = connFactory.createQueueConnection(); | | // start the connection | queueConn.start(); | | // create a queue session | QueueSession queueSession = queueConn.createQueueSession(false, | Session.AUTO_ACKNOWLEDGE); | | if (args.length > 0 && args[0].equals("-receive")) | { | | // create a queue receiver | | QueueReceiver queueReceiver = queueSession.createReceiver(queue); | | | | // receive a message | | TextMessage message = (TextMessage) queueReceiver.receive(); | | | | // print the message | | System.out.println("received: " + message.getText()); | } | else | { | | // create a queue sender | | QueueSender queueSender = queueSession.createSender(queue); | | | | // create a simple message to say "Hello" | | TextMessage message = queueSession.createTextMessage("Hello"); | | | | // send the message | | queueSender.send(message); | } | | // close the queue connection | queueConn.close(); } }これは普通のキュー送信者および受信者で、デフォルトではメッセージをキューに送信し、
-receive
フラグ付きで実行されるとキューからメッセージを受信します。 jmqrunクライアント実行側で-Jフラグを使用して、トンネルプロパティを指定できます。jmqrun -J-DORBHttpTunnelURL=http://titus:80/tunnel http.ClientブラウザでトンネルURLを開いて、トンネルが正常に実行されているか確認してください。トンネルは、HTTP GETを理解できないことを示すエラーメッセージを表示します。 また、JMSサーバが、サーブレットコンテナからアクセスできるホストで実行されているか確認する必要もあります。
Copyright © 2000-2003, Novell, Inc.All rights reserved. |