Description
1. Contruct a war file containing static content where a file name has a space in its name.
2. add appropriate web.xml, geronimo-jetty.xml
Deploying such a war file results in an IllegalArgumentException from this attempt to resolve an illegal uri:
(JettyModuleBuilder, around line 660)
public void installInEARContext(EARContext earContext, URI moduleBase) throws DeploymentException, IOException {
JarInputStream jarIS = new JarInputStream(new FileInputStream(webAppFile.getName()));
for (JarEntry entry; (entry = jarIS.getNextJarEntry()) != null; jarIS.closeEntry()) {
URI target = moduleBase.resolve(entry.getName());
URI javadoc specifies that the string argument to resolve must satisfy RFC 2396, in particular no spaces.
This war deploys ok on [jboss/]tomcat 4.1.29 and the content is visible in IE with the space encoded as %20
One possible solution is to use a multi-arg URI constructor on entry.getName(), which will encode the string properly. We will have to verify that any solution is compatible with jetty's handling of the content.