Chris >> BTW, why doesn't getRealPath return the full path to the >> folder that the WAR file is in instead of null? > > You mean for a call like getRealPath("/")?
Yes, exactly! > Well, that would require a path to be returned to the "root" of > the application. Let's say that ROOT.war is in > /home/tomcat/webapps/ROOT.war and also index.html is in the > "root" of the WAR File. > > If you used getRealPath("/index.html") it would, as described, > return null -- because there's no file path that could get you > to that file. > > If you used getRealPath("/") and then added "/index.html" to > the end of it, you'd expect to be able to read index.html from > the resulting path (/home/tomcat/webapps/index.html). Not only > does that not work (because the file isn't there), it's not > even the right path. The "right" path (if there even is one) > would be something like "/home/tomcat/webapps/ROOT.war/index.html". While that is exactly the sort of result I would want, it does seem kind of hackish. It isn't a response that can be supplied to a file system to retrieve the file. It would require some sort of analysis and parsing. So I can see why null is the safer answer, even if I don't like it. ;-) > So when the WAR is not unpacked, there really isn't any > meaningful return value from getRealPath, even for special- > cases like "" or "/". Thanks for explaining. I need to absorb all that info. Also, maybe I'm not asking the right question. How do you all configure the location of a special folder that is not part of the deployment package itself? A site-specific config file perhaps? Currently I'm using getRealPath for a relative-path location, but it sounds like that may need to be changed. Fortunately, the impact points are somewhat limited since all calls to getRealPath are wrapped with other centralized methods. -- Cris Berneburg CACI Lead Software Engineer