https://issues.apache.org/bugzilla/show_bug.cgi?id=54741
Bug ID: 54741
Summary: Add
org.apache.catalina.startup.Tomcat#addWebapp(String,
URL) method
Product: Tomcat 8
Version: trunk
Hardware: All
OS: All
Status: NEW
Severity: enhancement
Priority: P2
Component: Catalina
Assignee: [email protected]
Reporter: [email protected]
Classification: Unclassified
Currently Tomcat can only deploy from a WAR file or directory that exists on
the real file system. It would be nice, in an embedded Tomcat (one JAR)
situation, to be able deploy an application using a JAR file resource without
having to first copy that resource to the local file system.
URL war = this.getClass().getResource("/MyApp.war")
Tomcat tomcat = new Tomcat();
...
tomcat.addWebapp("", war);
I tried doing this with the actual URL string, but that did not work:
URL war = this.getClass().getResource("/MyApp.war")
Tomcat tomcat = new Tomcat();
...
tomcat.addWebapp("", war.toString());
SEVERE: Exception fixing docBase for context []
java.io.FileNotFoundException:
C:\Users\Nicholas\Desktop\Project\target\.extract\webapps\jar:file:\C:\Users\Nicholas\Desktop\Project\target\MyApp-1.0.0-SNAPSHOT.jar
(The filename, directory name, or volume label syntax is incorrect)
I had to do this instead:
URL war = this.getClass().getResource("/MyApp.war")
File warFile = new File(extractDirectory, "MyApp.war");
FileUtils.copyURLToFile(war, warFile);
Tomcat tomcat = new Tomcat();
...
tomcat.addWebapp("", warFile.getAbsolutePath());
Of course, that's ignoring all the error-checking logic. It's just a nuisance
to have to do this. Surely, since Tomcat unzips the WAR file anyway, it could
do it on a URL resource instead of having to copy the file to the local
filesystem.
--
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]