How do I accomplish relative addressing under JBoss?
ggraham Sep 11, 2002 6:04 PMHello all,
I am an absolute newbie to JBoss. I have been working with a small wireless demo application that has been deployed as a war file under JBoss 2.2.2 and Tomcat 3.3.3 on a Linux server running apache. (forced to use these versions for now)
The war file directory structure is:
wirelesstt.war
 |
 |_WEB-INF
 | |_web.xml
 | |_classes
 | | |_various class files
 | | (mostly serveletts and action classes)
 | | I also have a copy of dbproperties.xml
 | | here
 | |_lib
 | |_my jar files (including the ConnPool.jar)
 | |_ and dbproperties.xml
 |
 |_ wireless_images
 a couple of image files
I mention the ConnPool.jar file specifically above because this application uses connection pooling and this is the jar that handles it. The PoolManager class in this jar file needs to read a configuratiuon file named 'dbproperties.xml' which contains info about the pools to create, the jdbc drivers, etc.
My problem is this: I need to be able to address this xml file via relative addressing. I do not seem to be able to do this.
Here is the section of code from PoolManager that is trying to open the URL to the properties file:
String urlstr = "/lib/dbproperties.xml";
String linein = "";
StringBuffer sb = new StringBuffer();
URL myURL = null;
BufferedReader br = null;
System.out.println("In ConnPool.PoolManager.init()");
try {
 System.out.println("attempting to load " + urlstr);
 myURL = new URL(urlstr);
 br = new BufferedReader(new InputStreamReader(myURL.openStream()));
 while ((linein = br.readLine()) != null) {
 sb.append(linein);
 }
 xmlStr = sb.toString();
 System.out.println("xmlStr created: " + xmlStr);
 br.close();
}
catch (MalformedURLException mue) {
 System.out.println("Can't read the properties file. (" + urlstr + ") at " + (new java.util.Date()));
 System.out.println("MalformedURLException Exception text: " + mue.getMessage());
 return;
}
catch(IOException ioe) {
 System.out.println("Can't read the properties file. (" + urlstr + ") at " + (new java.util.Date()));
 System.out.println("IOException text: " + ioe.getMessage());
 return;
}
catch (Exception e)
{
 System.out.println("Can't read the properties file. (" + urlstr + ") at " + (new java.util.Date()));
 System.out.println("Exception text: " + e.getMessage());
 return;
}
As you can see all I am trying to do is create a Url object using a relative address and then use this object to create a BufferedReader to read in the xml.
No matter how I try to configure the relative address:
 ./dbproperties.xml, wirelesstt/servlet/dbproperties.xml, etc I always get the following exception:
[EmbeddedTomcatSX] In ConnPool.PoolManager.init()
[EmbeddedTomcatSX] attempting to load /dbproperties.xml
[EmbeddedTomcatSX] Can't read the properties file. (/dbproperties.xml) at Wed Sep 11 16:56:30 EDT 2002
[EmbeddedTomcatSX] IOException text: /dbproperties.xml
It appears that i can not locate the file.
Can anyone help me with how to specify the relative address correctly? I am thoroughly confused and somewhat frustrated with JBoss as well. This technique works just fine under JRun, and under IIS.
Thanks,
Gary Graham
