You are viewing an older version of this section. Click here to navigate to the latest version.

Deployment Scenarios

There are several ways in which you can deploy Mule ESB. This page describes the various approaches.

Deployment Mode Container Pros Cons HA MMC


Mule ESB

Mule Deployment Model, Run multiple apps, Hot Deployment, Minimal Resource Requirements, Easy to Install

Mule must be provisioned into your environment

Mule HA Supported


Embedded WAR

App Server

Run multiple apps, All dependencies contained in webapp, Use Webapp deployment model

Each web app runs own mule instance, Increases size of webapp

Use App Server HA


Embedded Java

Java App / IDE

No external container required

No Hot Deployment

Not Supported


*When Mule is embedded in some other container, the management console cannot perform auto-discovery or server restarts.

Running Mule in Standalone Mode

The recommended approach is to run Mule ESB standalone from the command prompt, as a service or daemon, or from a script. This is the simplest architecture, so it reduces the number of points where errors can occur. It’s typically best for performance as well, since it reduces the number of layers and eliminates the inherent performance impact of an application server on the overall solution. With Mule 3, you can also now run multiple applications side by side in a Mule instance using the new deployment model can support live deployment and hot redeployment of applications. Lastly, standalone mode has full support for the Mule High Availability module and the Mule management console.

For more information on running Mule standalone, see Mule Deployment Model.

Embedding Mule in a Java Application or Webapp

You can start and stop Mule from a Java application or embed it in a Webapp (such as a JSP or servlet). For details, see Embedding Mule in a Java Application or Webapp. Following are details on specific application servers:

For details on how you can support Mule hot deployment within some application servers, see Application Server Based Hot Deployment.

Note that when you embed Mule, the Mule Deployment Model and Mule HA high availability is not supported. Furthermore, because the application server needs control of Mule, the Mule Management Console control/management capabilities are reduced. The monitoring functions work, but server restart is not supported.

Using Spring

Mule fully integrates with Spring, allowing you to take advantage of Spring’s many features, including support for JNDI and EJB session beans. You can also use Spring remoting to access Mule from an external applications. For details, see Using Mule with Spring.