Search code examples
tomcatdeploymentantcargo

Remote Tomcat deployment via Cargo Ant Task


I was trying to deploy a WAR file using the Cargo Ant task version 1.0.6 to a remote Tomcat server. As far as I can see from the documentation I have to set the container type to remote and the configuration type to runtime. However, when I run it I get the following error message:

You must specify either a [home] attribute pointing to the location where the Tomcat 6.x Remote is installed, or a nested [zipurlinstaller] element

This error message doesn't quite make sense to me because I don't want to set the home (it sits on a different server) and I don't want to download Tomcat from an URL (zipurlinstaller) because I already have an installation on my server. I thought using the type remote would prevent having to choose between home and zipurlinstaller. Am I missing a specific parameter here?

Here's my Ant code:

<taskdef resource="cargo.tasks">
  <classpath>
    <pathelement location="${cargo-uberjar}"/>
    <pathelement location="${cargo-antjar}"/>
  </classpath>
</taskdef>

<target name="cargostart" depends="war">
  <cargo containerId="tomcat6x" type="remote" action="start" wait="false">
    <configuration type="runtime">
      <property name="cargo.tomcat.manager.url" value="http://someserver:8080/manager"/>
      <property name="cargo.remote.username" value="username"/>
      <property name="cargo.remote.password" value="password"/>
      <deployable type="war" file="${mywarfile}"/>
    </configuration>
  </cargo>
</target>

Solution

  • Long story short Cargo version 1.0.6 does not support remote deployment via the Ant tasks. However, 1.1.0 will support it which will be released in the upcoming weeks. You read the discussion about this topic on the Cargo user mailing list. The Jira ticket CARGO-962 addresses the issue.