14.4.4. Netty サーブレットの設定
Netty サーブレットトランスポートでは、HornetQ トラフィックを HTTP を介してサーブレットエンジンで実行されているサーブレットにトンネリングできます (トラフィックは仮想マシン HornetQ サーバーにリダイレクトされます)。
これは、トラフィックが Web アプリケーションを提供している可能性があるサーブレットエンジンを介してルーティングされるため、Netty HTTP トランスポートとは異なります。これにより、企業ポリシーで、単一の Web サーバーが HTTP ポートでリッスンできる場合に、HornetQ を使用できます。
Netty サーバートランスポートのためにサーブレットエンジンを設定
- サーブレットをデプロイします。サーブレットを使用する Web アプリケーションは以下のような
web.xmlファイルを持つことがあります。<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4"> <servlet> <servlet-name>HornetQServlet</servlet-name> <servlet-class>org.jboss.netty.channel.socket.http.HttpTunnelingServlet</servlet-class> <init-param> <param-name>endpoint</param-name> <param-value>local:org.hornetq</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>HornetQServlet</servlet-name> <url-pattern>/HornetQServlet</url-pattern> </servlet-mapping> </web-app> netty-invmアクセプターをJBOSS_DIST/jboss-as/server/PROFILE/deploy/hornetq/hornetq-configuration.xmlのサーバーサイド設定に追加します。<acceptors> <acceptor name="netty-invm"> <factory-class> org.hornetq.core.remoting.impl.netty.NettyAcceptorFactory </factory-class> <param key="use-invm" value="true"/> <param key="host" value="org.hornetq"/> </acceptor> </acceptors>- クライアントのコネクターを
JBOSS_DIST/jboss-as/server/PROFILE/deploy/hornetq/hornetq-configuration.xmlで定義します。<connectors> <connector name="netty-servlet"> <factory-class> org.hornetq.core.remoting.impl.netty.NettyConnectorFactory </factory-class> <param key="host" value="localhost"/> <param key="port" value="8080"/> <param key="use-servlet" value="true"/> <param key="servlet-path" value="/messaging/HornetQServlet"/> </connector> </connectors>
初期パラメーター
endpoint- サーブレットがパケットを転送する netty アクセプターを定義します。
hostパラメーターの名前を照合します。
web.xml で設定されたサーブレットパターンは使用される URL のパスです。コネクター設定のコネクターパラメーター servlet-path は、Web アプリケーション (存在する場合) のアプリケーションコンテキストを使用してこれに照合する必要があります。
また、以下の設定をコネクターに追加することにより、SSL を介してサーブレットトランスポートを使用することもできます。
<connector name="netty-servlet">
<factory-class>
org.hornetq.core.remoting.impl.netty.NettyConnectorFactory
</factory-class>
<param key="host" value="localhost"/>
<param key="port" value="8443"/>
<param key="use-servlet" value="true"/>
<param key="servlet-path" value="/messaging/HornetQServlet"/>
<param key="ssl-enabled" value="true"/>
<param key="key-store-path" value="path to a keystore"/>
<param key="key-store-password" value="keystore password"/>
</connector>
キーストアを使用するためにアプリケーションサーバーを設定する必要もあります。以下のように、SSL/TLS コネクター設定を
server/default/deploy/jbossweb.sar/server.xml で編集します。
<Connector protocol="HTTP/1.1" SSLEnabled="true"
port="8443" address="${jboss.bind.address}"
scheme="https" secure="true" clientAuth="false"
keystoreFile="path to a keystore"
keystorePass="keystore password" sslProtocol = "TLS" />
両方のケースでは、キーストアとパスワードを提供する必要があります。詳細については、HornetQ に同梱された Servlet SSL の例を参照してください。