20.2.5. Configuration de Netty Servlet

Le transport de servlet autorise le trafic HornetQ via HTTP à un servlet exécutant dans un moteur de servlet qui le redirige ensuite vers un serveur de HornetQ in-VM. Le transport Netty HTTP agit comme un serveur web à l'écoute du trafic HTTP sur des ports spécifiques. Avec le transport de servlet, le trafic HornetQ est mandaté par un moteur de servlet qui puisse déjà servir à un site web ou à d'autres applications.
Pour pouvoir configurer un moteur de servlet qui puisse fonctionner sur un transport de servet Netty, vous devrez suivre les étapes suivantes :
  • Déployer le servlet : l'exemple suivant décrit une application web qui utilise le servlet :
    <web-app>
      <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>
    
    Le paramètre init endpoint spécifie l'attribut d'hôte de l'accepteur Netty à qui le servlet va envoyer ses packages.
  • Insérer l'accepteur de Netty servlet sur la configuration côté serveur : l'exemple suivant montre la définition d'un accepteur en serveur de fichiers de configuration (standalone.xml et domain.xml) :
    <acceptors>
       <acceptor name="netty-servlet">
          <factory-class>
             org.hornetq.core.remoting.impl.netty.NettyAcceptorFactory
          </factory-class>
          <param key="use-servlet" value="true"/>
          <param key="host" value="org.hornetq"/>
       </acceptor>
    </acceptors>
    
  • La dernière étape consiste à définir un connecteur pour le client dans les fichiers de configuration du serveur (standalone.xml et domain.xml) :
    <netty-connector name="netty-servlet" socket-binding="http">
       <param key="use-servlet" value="true"/>
       <param key="servlet-path" value="/messaging/HornetQServlet"/>
    </netty-connector>
    
  • Il est également possible d'utiliser le transport de servlet via SSL en ajoutant la configuration suivante au connecteur :
    <netty-connector name="netty-servlet" socket-binding="https">
       <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 key-store"/>
       <param key="key-store-password" value="key-store password"/>
    </connector>
    

Avertissement

Failover automatique non pris en charge pour les clients se connectant via HTTP tunneling servlet.

Note

Le servlet Netty ne peut pas être utilisé pour configurer les serveurs EAP 6 pour mettre en place un cluster HornetQ.