h2. servicemix-http

h3. Overview
ServiceMix ships with a JBI compliant JMS binding component named servicemix-jms.

Here are the main features:
* JBI compliant Binding Component
* Usable in a lightweight mode in servicemix.xml configuration files
* SOAP 1.1 and 1.2 support
* MIME attachments
* WS-Addressing support
* WSDL based and XBean based deployments
* Support for all MEPs as consumers or providers


h4. Namespace and xbean.xml
The namespace URI for the servicemix-bean JBI component is {{http://servicemix.apache.org/jms/1.0}}.  This is an example of <filename>xbean.xml</filename> file with a namespace definition with prefix {{bean}}.
{pygmentize:lang=xml}
<beans xmlns:jms="http://servicemix.apache.org/jms/1.0">

  <!-- add jms:consumer, jms:soap-consumer, jms:jca-consumer,
           jms:provider, jms:soap-provider and jms:jca-provider definitions here -->

</beans>
{pygmentize}

h4. Endpoint types
The servicemix-jms component defines six endpoint type:
- {{jms:consumer}} :: This endpoint allows you to expose a service in the ESB to the outside world over JMS. Whenever it receives a JMS message, it will interact with the configured services on the ESB.
- {{jms:soap-consumer}} :: Similar to {{jms:consumer}}, but specifically geared towards handing SOAP requests and responses
- {{jms:jca-consumer}} :: Similar to {{jms:consumer}}, but adds the possibility of using a JCA resource adapter
- {{jms:provider}} :: This endpoint allows you to access remote services from within the ESB.  It will send a JMS message whenever it receives a JBI MessageExchange
- {{jms:soap-provider}} :: Similar to {{jms:provider}}, but specifically geared towards performing SOAP requests
- {{jms:jca-provider}} :: Similar to {{jms:provider}}, but adds the possibility of using a JCA resource adapter

It also provides one additional legacy endpoints, which are still available to ease migration from ServiceMix 3:
- {{jms:endpoint}} :: (Deprecated) Legacy endpoint, capable to acting as a consumer or provider based on the configuration

