Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 11 Next »

This document explains how to configure Cargo remote deployment support on a Jetty container.


By default, Jetty does not come with possibilities for remote deployment. In order to add such a support to Jetty, Cargo uses a "Jetty remote deployer" Web application.

This application is a simple servlet-based application which exposes methods such as deploy or undeploy on standard HTTP POST URLs. When thse HTTP methods are called, the servlet implementing these methods connects to the Jetty Server implementation and does deployment related actions on the server; this Web application can therefore be seen as a kind of remote administration proxy.

Being a standard Web application, the Cargo Jetty remote deployer application can be secured using Jetty users and roles.

Downloading the remote deployer

Two versions of the Jetty remote deployer WAR are available on the Cargo downloads page (scroll down to the Tools section):

  • cargo-jetty-7-and-onwards-deployer: The Deployer Web application for the Jetty remote containers, which must have been deployed to Jetty before using the CARGO remote deployer. Designed to work with Jetty 7.x and later (Jetty from
  • cargo-jetty-6-and-earlier-deployer: The Deployer Web application for the Jetty remote containers, which must have been deployed to Jetty before using the CARGO remote deployer. Designed to work with Jetty 6.x and earlier (Jetty from

Please make sure to download and install the correct flavour for your Jetty version.


By default, the Cargo Jetty remote deployer comes with no security.

In order to activate security, follow these steps:

  1. Open the WEB-INF/web.xml file of the Cargo Jetty remote deployer WAR
  2. Uncomment the part that says Uncomment in order to activate security. By default, that configuration is as follows:
    • Authentication is done using standard HTTP headers: login-config set to BASIC.
    • Authorization is done using Jetty role: security-constraint has a auth-constraint with role-name.
  3. Create a user with the Jetty role manager:
    1. Open the Jetty file
    2. Add, for example, the following definition

To try the security settings, you can try to visit the /cargo-jetty-deployer context on your server, for example http://production27:8080/cargo-jetty-deployer, using any Web browser. If security is configured well, it should:

  • Ask for a login and password
  • Ask again if the login is not valid
  • If the login is valid, show a page saying: Command / is unknown

Note: Jetty's website has documentation on hashing the password.


Here is an example Maven2 plugin configuration that:

  • Deploys on a remote Jetty 6.x server
  • The server is on production17, port 8080
  • The Jetty remote deployer WAR is secured using the Jetty role manager
  • A user called someusername with password somepassword is defined as manager

To run the given Maven2 plugin configuration on a simple Maven2 WAR project, simply execute:

Known issues

Unexpected end of file from server and maxIdleTime parameter


By default, Jetty sets the maxIdleTime parameter in the etc/jetty.xml file 30 seconds. This means that if the actual deployment takes more than 30 seconds, you might get error messages like:

In this case, open the target Jetty container's etc/jetty.xml file and set the maxIdleTime parameter to longer. For example:

  • No labels