I'm running Tomcat 5.0. I'm trying to deploy a remote WAR file to my tomcat using the ManagerServlet's html commands. Since the WAR file is not on the local disk of the tomat server, I'm sending it a callback http URL to download the WAR file but it is not working. (I'm trying to automate pushing out builds from a build machine to target servers).
I'm refering to this info: http://jakarta.apache.org/tomcat/tomcat-4.1-doc/catalina/docs/api/org/apache/catalina/servlets/ManagerServlet.html Where it explains that I can send arguments to the "deploy" command: /install?path=/xxx&war={war-url} where {war-url} can be: jar:http://hostname:port/path/to/a/warfile.war!/ Given that, I construct a URL to send to the manager servlet: http://myhost:8080/manager/html/deploy?deployPath=/bdm2&deployWar=jar:http://localhost:8080/bdm/bdm.war!/ And I promptly get the error: FAIL - Encountered exception java.lang.IllegalArgumentException: Invalid URL for web application archive: http://localhost:8080/bdm/bdm.war In the log, I pull the stack trace: java.lang.IllegalArgumentException: Invalid URL for web application archive: http://localhost:8080/bdm/GetWar?file=bdm.war at org.apache.catalina.core.StandardHostDeployer.install(StandardHostDeployer.java:215) at org.apache.catalina.core.StandardHost.install(StandardHost.java:832) at org.apache.catalina.manager.ManagerServlet.deploy(ManagerServlet.java:922) at org.apache.catalina.manager.HTMLManagerServlet.deployInternal(HTMLManagerServlet.java:273) at org.apache.catalina.manager.HTMLManagerServlet.doGet(HTMLManagerServlet.java:97) [...] So I pulled the src distribution for 5.0 and looked at StandardHostDeployer.java:215 I see lines 210 to 215: if (url.startsWith("file://")) docBase = url.substring(7); else if (url.startsWith("file:")) docBase = url.substring(5); else throw new IllegalArgumentException (sm.getString("standardHost.warURL", url)); This expects the URL to begin with "file:" instead of "http:". So it appears to me that, contrary to the documentation, Tomcat does not support getting a WAR file via http. Is that the case, or am I doing this wrong? Thanks.