blob: 95b2cab8c6b13c0f4ed8074bec744614e54c8931 [file] [log] [blame]
<div class="wiki-content maincontent"><h3>HTTP and HTTPS Transports</h3>
<p>The HTTP and HTTPS transports are used to tunnel over HTTP or HTTPS using XML payloads. This allows the ActiveMQ client and broker to tunnel over HTTP avoiding any firewall issues. </p>
<p>If the client is not JMS you might want to look at <link><page ri:content-title="REST"></page></link> or <link><page ri:content-title="Ajax"></page></link> support instead.</p>
<p>Note that the HTTP Transport is located in the activemq-optional jar.</p>
<p>ActiveMQ uses a combination of Jetty's Server and SslSocketConnector objects to communicate via the HTTPS transport. When using HTTPS, improper configuration of the corresponding SSL certificates and/or keys may very well lead to the Jetty infinite loop problem described in this <a shape="rect" href="http://www.nabble.com/SslSocketConnector-loops-forever-during-initialization-to14621825.html#a17535467">nabble thread</a>. A good reference on creating and configuring keys and certificates can be found <a shape="rect" href="http://docs.codehaus.org/display/JETTY/How+to+configure+SSL">here</a>.</p>
<h4>Configuration Syntax</h4>
<p><a shape="rect" class="external-link" href="http://host:port" rel="nofollow">http://host:port</a>
<a shape="rect" class="external-link" href="https://host:port" rel="nofollow">https://host:port</a></p>
<h4>Example URI</h4>
<structured-macro ac:macro-id="4d99dd99-68a7-450b-b7b3-d7bf05c8b555" ac:name="noformat" ac:schema-version="1"><plain-text-body>
http://localhost
https://localhost:8080
</plain-text-body></structured-macro>
<h4>Dependencies</h4>
<p>Clients that use http(s) transport have some additional dependencies, over tcp ones. Those are </p>
<ul><li><a shape="rect" href="http://hc.apache.org/httpclient-3.x/">HttpClient</a></li><li>and <a shape="rect" href="http://xstream.codehaus.org/">XStream</a></li></ul>
<p>Make sure you have them in your classpath if you use this transport. Also, if you're configuring networks of brokers with http(s) transport make sure you have them in broker's classpath (somewhere under <code>lib/</code> directory) as the broker will act as a client in that case.</p></div>