I have a problem reading a file that I've put in the WEB-INF/classes dir.
It works on tc3.2 and tc3.3, but doesn't work in tc4.0. Could someone shed
some light on why, and how I could manage to read it on all servlet
servers, and whether I should put it somewhere else.
The file is called "logconfig.xml", and the Settings.getLOG_CONFIG_FILE()
is just a String with that content.
This code:
private static boolean logConfig() throws ConfigException {
URL dtdURL = DOMConfigurator.class.getResource("log4j.dtd");
if(dtdURL == null)
throw new IllegalArgumentException("CT: Couldn't find
log4j.dtd. Bad stuff.");
FileInputStream configFileIS;
try {
URL configURL =
DOMConfigurator.class.getClassLoader().getResource(Settings.getLOG_CONFIG_FILE());
System.out.println("This is the config URL: "+configURL);
System.out.println("This is the config URL.getFile():
"+configURL.getFile());
File configFile = new File(configURL.getFile());
System.out.println("This is the config file: "+configFile);
configFileIS = new FileInputStream(configFile);
}
catch (FileNotFoundException e) {
throw new ConfigException("CT: Configfile not found: "+e);
}
[ -- cut -- ]
}
produces different results of tc4 vs tc3.2 and tc3.3
On tc3.3m2:
This is the config URL:
file:/devel/endre/active/SERVER/webapps/CAF/WEB-INF/classes/logconfig.xml
This is the config URL.getFile():
/devel/endre/active/SERVER/webapps/CAF/WEB-INF/classes/logconfig.xml
This is the config file:
/devel/endre/active/SERVER/webapps/CAF/WEB-INF/classes/logconfig.xml
- and it works fine.
Excat the same with tc3.2.2b2:
This is the config URL:
file:/devel/endre/active/SERVER/webapps/CAF/WEB-INF/classes/logconfig.xml
This is the config URL.getFile():
/devel/endre/active/SERVER/webapps/CAF/WEB-INF/classes/logconfig.xml
This is the config file:
/devel/endre/active/SERVER/webapps/CAF/WEB-INF/classes/logconfig.xml
- still fine
But On tc4.0b1:
This is the config URL: jndi:/WEB-INF/classes/logconfig.xml
This is the config URL.getFile(): /WEB-INF/classes/logconfig.xml
This is the config file: /WEB-INF/classes/logconfig.xml
com.corelets.settings.ConfigException: CT: Configfile not found:
java.io.FileNotFoundException: /WEB-INF/classes/logconfig.xml (No such
file or directory)
at com.corelets.server.Startup.logConfig(Startup.java:234)
at com.corelets.server.Startup.init(Startup.java:46)
at javax.servlet.GenericServlet.init(GenericServlet.java:258)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:779)
...
- and here it breaks, of course.
What's that "jndi:" stuff instead of "file:" ??
--
Mvh,
Endre