logo       

loadConfiguration() is called twice by tomcat -> exception: msg#00148

jakarta.velocity.user

Subject: loadConfiguration() is called twice by tomcat -> exception

Hi,
During startup tomcat 3.2.4 (velocity 1.2 ) the Method loadConfiguration() is called once.
All stuff initialized very well.

Wenn i try to call the servlet with

http://localhost:8080/zerf

the loadConfiguration() is called a second time, with a Nullpointer-Exc in Line

String propsFile = config.getInitParameter(INIT_PROPS_KEY);
(The whole code-sniplet is at the bottom of this Mail)

Whats going wrong????

My Module is located in: tomcat_home/webapps/zerf/...
The class is located in: tomcat_home/webapps/zerf/WEB-INF/classes/zerf/znSignController.class

My web.xml:

<web-app>
<servlet>
<servlet-name>zerf</servlet-name>
<servlet-class>zerf.ZnSignController</servlet-class>
<init-param>
<param-name>properties</param-name>
<param-value>conf\zerf_config.properties</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>
index.jsp
</welcome-file>
<welcome-file>
index.html
</welcome-file>
<welcome-file>
index.htm
</welcome-file>
</welcome-file-list>
</web-app>
The loadConfiguaration Method:

protected Properties loadConfiguration(ServletConfig config)
throws IOException, FileNotFoundException {
System.out.println("---------- Load ZERF Konfiguration: ");
// web.xml auslesen:
String propsFile = config.getInitParameter(INIT_PROPS_KEY);
System.out.println("Reading Path from Propertie-File from web.xml: " + propsFile);
/* now convert to an absolute path relative to the webapp root
* This will work in a decently implemented servlet 2.2
* container like Tomcat.
*/
if (propsFile != null){
String realPath = getServletContext().getRealPath(propsFile);
if (realPath != null) propsFile = realPath;
}
Properties p = new Properties();

try{
System.out.println("Load Properties from: " + propsFile);
p.load(new java.io.FileInputStream(propsFile));
}catch (Exception e){
handleException(e, "Error while loading Properties");
}

/* now, lets get the two elements we care about, the
* template path and the log, and fix those from relative
* to the webapp root, to absolute on the filesystem, which is
* what velocity needs
*/
String path = p.getProperty(Velocity.FILE_RESOURCE_LOADER_PATH);

if (path!=null){
path = getServletContext().getRealPath(path);
p.setProperty(Velocity.FILE_RESOURCE_LOADER_PATH, path);
}

path = p.getProperty("runtime.log");

if (path != null){
path = getServletContext().getRealPath(path);
p.setProperty("runtime.log", path);
}
System.out.println("Path to Templates: " + p.getProperty(Velocity.FILE_RESOURCE_LOADER_PATH));
System.out.println("Path to Log-File: " + p.getProperty("runtime.log"));
System.out.println("-----------------------------------");
return p;
}
<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

News | FAQ | advertise