tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Aurélien Terrestris <aterrest...@gmail.com>
Subject Re: Parallel deployment URL issue
Date Thu, 01 Oct 2015 21:45:02 GMT
Hello

maybe the Java documentation is badly written, because it is saying (
http://docs.oracle.com/javase/7/docs/api/java/io/File.html#toURL%28%29
) : "This method does not automatically escape characters that are
illegal in URLs."

# character is not illegal, but reserved (see gen-delims definition in
RFC 3986). It means the character is quite legal, and really, it is
widely used for anchoring.

As a quick-and-dirty, did you try renaming your file yourWar##12345 to
yourWar%23%2312345 ?

regards
A.T.


2015-10-01 17:51 GMT+02:00 Chris Gamache <cgamache@gmail.com>:
> Hi all,
>
> I'm stuck using axis2-1.5.4.
>
> Here's what I think is happening:
>
> Axis2 does this sort of container-in-a-container thing. It creates its own
> classloader and pulls in all of its jar libraries dynamically. The problem
> is that it uses a java.net.URL to target the files. This would be fine
> except for the problem that the folder name, when using parallel
> deployment, is
>
> /path/to/yourWar##12345
>
> So (from org.apache.axis2.deployment.util.Utils)
>
>     public static URL[] getURLsForAllJars(URL url, File tmpDir) {
>         FileInputStream fin = null;
>         InputStream in = null;
>         ZipInputStream zin = null;
>         try {
>             ArrayList array = new ArrayList();
>             in = url.openStream();
>
> The problem is that URL was constructed from a File object in the
> org.apache.axis2.deployment.repository.util.DeploymentFileData.setClassLoader(boolean,
> ClassLoader, File) method using the toURL() method. The toURL() method is
> deprecated because it doesn't escape special characters, namely the "##" in
> the path.
>
> When it hits url.openStream() it is discarding everything after the ##nnnnn
> part of the path (think hash value in a web URL). It throws a
> "java.io.FileNotFoundException: /path/to/yourWar (No such file or
> directory)"
>
> Getting in there and patching axis2-1.5.4 is less-than-desirable. So many
> things to go wrong.
>
> Is there a way to alter the way tomcat unpacks the warfile? Is there a way
> to configure the version delimiters from ## to perhaps ~~ or $$ ?
>
> CG

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Mime
View raw message