[jboss-user] [Tomcat, HTTPD, Servlets & JSP] - classloader and resources.
tgiaccone
do-not-reply at jboss.com
Wed Dec 10 16:06:23 EST 2008
This is my first posting to the JBOSS community forums, if I've picked the wrong topic to post this to, I apologize and please point me to the correct location.
My problem:
I have a utility project for the servlet I'm developing. The artifact produced by this project is a jar file. The jar file gets included in the lib directory of the servlet as part of the war file creation. I have verified that this jar file is in the WEB-INF/lib directory.
In that jar file, I have a number of BIRT report design files. These are files that contain XML that describes a report layout. Each file ends with the extension .rptdesign
If I unarchive the jar file, I end up with three top level directories:
birtReports
com
META-INF
The com hierarchy contains the .class files the birtReport directory contains my birt report templates.
I want to be able to retrieve these xml files in my servlet. To do that I execute the following code:
anonymous wrote :
| String name="birtReports/myReport.rptdesign";
| InputStream ips = this.getClass().getClassLoader().getResourceAsStream(name))
|
The result of this is that ips == null.
In an attempt to debug this problem. I added to the jar file, another entry, that creates a file "simple.properties" at the same level as the com and birtReports directories. So now on extraction of the jar into a temp directory I end up with:
ls -1
META-INF
birtReports
mil
simple.properties
If I change the above code to look like this:
anonymous wrote :
| name="simple.properties";
| InputStream ips = this.getClass().getClassLoader().getResourceAsStream(name))
|
after executing ips is non-null and I can read from the inputstream to get the contents of the file.
Can someone explain to me, what I'm doing incorrectly? In addition, when reading the documentation on resources, I understand that in some situations you would want to pre-pend a "/" to the resource that you're trying to extract. It's not clear to me where that "root" location is. Can someone explain the use of that "/" for me?
Thanks in advance,
Tony Giaccone
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4195734#4195734
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4195734
More information about the jboss-user
mailing list