Java Mailing List Archive

http://www.junlu.com/

Google
Google
Mailing List
Home
Forum Home
JBoss - Java Application Server
Tomcat - JSP/Servlet container
Struts - A MVC web framework
iText - An open source PDF Java Library
JDOM - JDOM XML Parser
J2EE - A mailing list for Java(tm) 2 Platform, Enterprise Edition
JSP - A mailing list about Java Server Pages specification and reference
J2EE Pattern - An interest list for Sun Java Center J2EE Pattern Catalog
Servlet - A mailing list for discussion about Sun Microsystem's Java Servlet API Technology
Struts & Hibernate
Subjects
JSP editor plugin for eclipse ?
org apache jasper JasperException: Unable to compile class for JSP
Tomcat: Connection reset by peer: socket write error
Cannot retrieve definition for form bean null
Struts Tiles Tutorial (free Struts training)
Where do I download Tomcat 4 0 6?
Data Access Object (DAO) pattern, example DAO 's
Where to download Tomcat v 4 1 24 from?
Tomcat 5 0 16 Requested resource not available
Oracle Connection Pooling in 3 2 2
Servlet : Session invalidate
Servlet action is currently unavailable
Tomcat/Struts Unicode Encoding/Decoding problems
Tomcat and webapplication specific java library path
Running a Simple JMS Example
Mapping in workers2 properties
org apache jasper JasperException
Cannot find message resources under key org apache struts action
   MESSAGE
problem with html:text bean throwing exception
Cannot find message resources under key org apache struts action MESSAGE
invalid direct reference problem with solution
Tool for jsp debug Try Sysdeo Eclipse Plugin
Tomcat 5 Cannot load JDBC driver class 'null ' SQL state: null
weblogic ejbc
java properties file
Jboss 3 2 3 Coyote Can 't re
Tomcat 5, Apache2 and mod jk2 integration problem
JBoss example problem new to J2EE
url string for connecting jboss to oracle
Value attribute of <html:checkbox
javax servlet ServletException: BeanUtils populate
HTTP Status 404 The requested resource is not available
5 0 18: Windows XP Pro vs Windows 2000
 
Help loading XML config file via Init Servlet

Help loading XML config file via Init Servlet

2007-01-14       - By James Dekker

 Back
Reply:     1     2     3     4  

Hello there,

I am using the Apache Commons Digester to load an XML config file via  
a servlet with init params...

I keep getting this error when I start Tomcat 5.5.9 and have deployed  
the war file via my build script:

INFO: Deploying web application archive coffeebreak.war
2007-01-14 03:10:33,050 WARN  
[org.coffeebreak.logging.Log4jInitServlet] - Loaded: log4j.properties  
file
attributes-config.xml not found, /Developer/JavaTools/tomcat/jakarta-
tomcat-5 (See http://cat-5.ora-code.com).5.9/bin/WEB-INF/classes/org/coffeebreak/config/attributes-
config.xml
2007-01-14 03:10:33,074 WARN  
[org.coffeebreak.helper.AttributeBeanXmlConfigHelper] - rules: null
org.apache.commons.digester.xmlrules.XmlLoadException Source code of org.apache.commons.digester.xmlrules.XmlLoadException
  at org.apache.commons.digester.xmlrules.FromXmlRuleSet Source code of org.apache.commons.digester.xmlrules.FromXmlRuleSet
$URLXMLRulesLoader.loadRules(FromXmlRuleSet.java:199)
  at  
org.apache.commons.digester.xmlrules.FromXmlRuleSet Source code of org.apache.commons.digester.xmlrules.FromXmlRuleSet
(FromXmlRuleSet.java:176)
  at  
org.apache.commons.digester.xmlrules.FromXmlRuleSet Source code of org.apache.commons.digester.xmlrules.FromXmlRuleSet
(FromXmlRuleSet.java:141)
  at org.apache.commons.digester.Digester Source code of org.apache.commons.digester.Digester(Digester.java:1998)
  at org.apache.commons.digester.xmlrules.DigesterLoader Source code of org.apache.commons.digester.xmlrules.DigesterLoader
(DigesterLoader.java:80)
  at org.coffeebreak.helper.AttributeBeanXmlConfigHelper.parse
(AttributeBeanXmlConfigHelper.java:29)
  at org.coffeebreak.config.XmlConfigInitServlet.init
(XmlConfigInitServlet.java:22)
  at javax.servlet.GenericServlet Source code of javax.servlet.GenericServlet(GenericServlet.java:211)
  at org.apache.catalina.core.StandardWrapper Source code of org.apache.catalina.core.StandardWrapper
(StandardWrapper.java:1091)
  at org.apache.catalina.core.StandardWrapper Source code of org.apache.catalina.core.StandardWrapper
(StandardWrapper.java:925)
  at org.apache.catalina.core.StandardContext Source code of org.apache.catalina.core.StandardContext
(StandardContext.java:3857)
  at org.apache.catalina.core.StandardContext Source code of org.apache.catalina.core.StandardContext
(StandardContext.java:4118)
  at org.apache.catalina.core.ContainerBase Source code of org.apache.catalina.core.ContainerBase
(ContainerBase.java:759)
  at org.apache.catalina.core.ContainerBase Source code of org.apache.catalina.core.ContainerBase
(ContainerBase.java:739)
  at org.apache.catalina.core.StandardHost Source code of org.apache.catalina.core.StandardHost(StandardHost.java:
524)
  at org.apache.catalina.startup.HostConfig Source code of org.apache.catalina.startup.HostConfig(HostConfig.java:
788)
  at org.apache.catalina.startup.HostConfig Source code of org.apache.catalina.startup.HostConfig(HostConfig.java:
677)
  at org.apache.catalina.startup.HostConfig Source code of org.apache.catalina.startup.HostConfig(HostConfig.java:
473)
  at org.apache.catalina.startup.HostConfig Source code of org.apache.catalina.startup.HostConfig(HostConfig.java:1102)
  at org.apache.catalina.startup.HostConfig Source code of org.apache.catalina.startup.HostConfig
(HostConfig.java:311)
  at org.apache.catalina.util.LifecycleSupport Source code of org.apache.catalina.util.LifecycleSupport
(LifecycleSupport.java:119)
  at org.apache.catalina.core.ContainerBase Source code of org.apache.catalina.core.ContainerBase(ContainerBase.java:
1020)
  at org.apache.catalina.core.StandardHost Source code of org.apache.catalina.core.StandardHost(StandardHost.java:718)
  at org.apache.catalina.core.ContainerBase Source code of org.apache.catalina.core.ContainerBase(ContainerBase.java:
1012)
  at org.apache.catalina.core.StandardEngine Source code of org.apache.catalina.core.StandardEngine(StandardEngine.java:
442)
  at org.apache.catalina.core.StandardService Source code of org.apache.catalina.core.StandardService
(StandardService.java:450)
  at org.apache.catalina.core.StandardServer Source code of org.apache.catalina.core.StandardServer(StandardServer.java:
683)
  at org.apache.catalina.startup.Catalina Source code of org.apache.catalina.startup.Catalina(Catalina.java:537)
  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  at sun.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.java:39)
  at sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:25)
  at java.lang.reflect.Method Source code of java.lang.reflect.Method(Method.java:585)
  at org.apache.catalina.startup.Bootstrap Source code of org.apache.catalina.startup.Bootstrap(Bootstrap.java:271)
  at org.apache.catalina.startup.Bootstrap Source code of org.apache.catalina.startup.Bootstrap(Bootstrap.java:409)
Caused by: java.lang.NullPointerException Source code of java.lang.NullPointerException
  at org.apache.commons.digester.xmlrules.FromXmlRuleSet Source code of org.apache.commons.digester.xmlrules.FromXmlRuleSet
$URLXMLRulesLoader.loadRules(FromXmlRuleSet.java:197)
  ... 33 more
java.lang.NullPointerException Source code of java.lang.NullPointerException
  at org.apache.commons.digester.xmlrules.FromXmlRuleSet Source code of org.apache.commons.digester.xmlrules.FromXmlRuleSet
$URLXMLRulesLoader.loadRules(FromXmlRuleSet.java:197)
  at  
org.apache.commons.digester.xmlrules.FromXmlRuleSet Source code of org.apache.commons.digester.xmlrules.FromXmlRuleSet
(FromXmlRuleSet.java:176)
  at  
org.apache.commons.digester.xmlrules.FromXmlRuleSet Source code of org.apache.commons.digester.xmlrules.FromXmlRuleSet
(FromXmlRuleSet.java:141)
  at org.apache.commons.digester.Digester Source code of org.apache.commons.digester.Digester(Digester.java:1998)
  at org.apache.commons.digester.xmlrules.DigesterLoader Source code of org.apache.commons.digester.xmlrules.DigesterLoader
(DigesterLoader.java:80)
  at org.coffeebreak.helper.AttributeBeanXmlConfigHelper.parse
(AttributeBeanXmlConfigHelper.java:29)
  at org.coffeebreak.config.XmlConfigInitServlet.init
(XmlConfigInitServlet.java:22)
  at javax.servlet.GenericServlet Source code of javax.servlet.GenericServlet(GenericServlet.java:211)
  at org.apache.catalina.core.StandardWrapper Source code of org.apache.catalina.core.StandardWrapper
(StandardWrapper.java:1091)
  at org.apache.catalina.core.StandardWrapper Source code of org.apache.catalina.core.StandardWrapper
(StandardWrapper.java:925)
  at org.apache.catalina.core.StandardContext Source code of org.apache.catalina.core.StandardContext
(StandardContext.java:3857)
  at org.apache.catalina.core.StandardContext Source code of org.apache.catalina.core.StandardContext
(StandardContext.java:4118)
  at org.apache.catalina.core.ContainerBase Source code of org.apache.catalina.core.ContainerBase
(ContainerBase.java:759)
  at org.apache.catalina.core.ContainerBase Source code of org.apache.catalina.core.ContainerBase
(ContainerBase.java:739)
  at org.apache.catalina.core.StandardHost Source code of org.apache.catalina.core.StandardHost(StandardHost.java:
524)
  at org.apache.catalina.startup.HostConfig Source code of org.apache.catalina.startup.HostConfig(HostConfig.java:
788)
  at org.apache.catalina.startup.HostConfig Source code of org.apache.catalina.startup.HostConfig(HostConfig.java:
677)
  at org.apache.catalina.startup.HostConfig Source code of org.apache.catalina.startup.HostConfig(HostConfig.java:
473)
  at org.apache.catalina.startup.HostConfig Source code of org.apache.catalina.startup.HostConfig(HostConfig.java:1102)
  at org.apache.catalina.startup.HostConfig Source code of org.apache.catalina.startup.HostConfig
(HostConfig.java:311)
  at org.apache.catalina.util.LifecycleSupport Source code of org.apache.catalina.util.LifecycleSupport
(LifecycleSupport.java:119)
  at org.apache.catalina.core.ContainerBase Source code of org.apache.catalina.core.ContainerBase(ContainerBase.java:
1020)
  at org.apache.catalina.core.StandardHost Source code of org.apache.catalina.core.StandardHost(StandardHost.java:718)
  at org.apache.catalina.core.ContainerBase Source code of org.apache.catalina.core.ContainerBase(ContainerBase.java:
1012)
  at org.apache.catalina.core.StandardEngine Source code of org.apache.catalina.core.StandardEngine(StandardEngine.java:
442)
  at org.apache.catalina.core.StandardService Source code of org.apache.catalina.core.StandardService
(StandardService.java:450)
  at org.apache.catalina.core.StandardServer Source code of org.apache.catalina.core.StandardServer(StandardServer.java:
683)
  at org.apache.catalina.startup.Catalina Source code of org.apache.catalina.startup.Catalina(Catalina.java:537)
  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  at sun.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.java:39)
  at sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:25)
  at java.lang.reflect.Method Source code of java.lang.reflect.Method(Method.java:585)
  at org.apache.catalina.startup.Bootstrap Source code of org.apache.catalina.startup.Bootstrap(Bootstrap.java:271)
  at org.apache.catalina.startup.Bootstrap Source code of org.apache.catalina.startup.Bootstrap(Bootstrap.java:409)
java.lang.NullPointerException Source code of java.lang.NullPointerException
  at org.coffeebreak.helper.AttributeBeanXmlConfigHelper.parse
(AttributeBeanXmlConfigHelper.java:38)
  at org.coffeebreak.config.XmlConfigInitServlet.init
(XmlConfigInitServlet.java:22)
  at javax.servlet.GenericServlet Source code of javax.servlet.GenericServlet(GenericServlet.java:211)
  at org.apache.catalina.core.StandardWrapper Source code of org.apache.catalina.core.StandardWrapper
(StandardWrapper.java:1091)
  at org.apache.catalina.core.StandardWrapper Source code of org.apache.catalina.core.StandardWrapper
(StandardWrapper.java:925)
  at org.apache.catalina.core.StandardContext Source code of org.apache.catalina.core.StandardContext
(StandardContext.java:3857)
  at org.apache.catalina.core.StandardContext Source code of org.apache.catalina.core.StandardContext
(StandardContext.java:4118)
  at org.apache.catalina.core.ContainerBase Source code of org.apache.catalina.core.ContainerBase
(ContainerBase.java:759)
  at org.apache.catalina.core.ContainerBase Source code of org.apache.catalina.core.ContainerBase
(ContainerBase.java:739)
  at org.apache.catalina.core.StandardHost Source code of org.apache.catalina.core.StandardHost(StandardHost.java:
524)
  at org.apache.catalina.startup.HostConfig Source code of org.apache.catalina.startup.HostConfig(HostConfig.java:
788)
  at org.apache.catalina.startup.HostConfig Source code of org.apache.catalina.startup.HostConfig(HostConfig.java:
677)
  at org.apache.catalina.startup.HostConfig Source code of org.apache.catalina.startup.HostConfig(HostConfig.java:
473)
  at org.apache.catalina.startup.HostConfig Source code of org.apache.catalina.startup.HostConfig(HostConfig.java:1102)
  at org.apache.catalina.startup.HostConfig Source code of org.apache.catalina.startup.HostConfig
(HostConfig.java:311)
  at org.apache.catalina.util.LifecycleSupport Source code of org.apache.catalina.util.LifecycleSupport
(LifecycleSupport.java:119)
  at org.apache.catalina.core.ContainerBase Source code of org.apache.catalina.core.ContainerBase(ContainerBase.java:
1020)
  at org.apache.catalina.core.StandardHost Source code of org.apache.catalina.core.StandardHost(StandardHost.java:718)
  at org.apache.catalina.core.ContainerBase Source code of org.apache.catalina.core.ContainerBase(ContainerBase.java:
1012)
  at org.apache.catalina.core.StandardEngine Source code of org.apache.catalina.core.StandardEngine(StandardEngine.java:
442)
  at org.apache.catalina.core.StandardService Source code of org.apache.catalina.core.StandardService
(StandardService.java:450)
  at org.apache.catalina.core.StandardServer Source code of org.apache.catalina.core.StandardServer(StandardServer.java:
683)
  at org.apache.catalina.startup.Catalina Source code of org.apache.catalina.startup.Catalina(Catalina.java:537)
  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  at sun.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.java:39)
  at sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:25)
  at java.lang.reflect.Method Source code of java.lang.reflect.Method(Method.java:585)
  at org.apache.catalina.startup.Bootstrap Source code of org.apache.catalina.startup.Bootstrap(Bootstrap.java:271)
  at org.apache.catalina.startup.Bootstrap Source code of org.apache.catalina.startup.Bootstrap(Bootstrap.java:409)
2007-01-14 03:10:33,687 WARN  
[org.coffeebreak.config.ErrorInitServlet] - Loaded: error.properties
INFO: Server startup in 15130 ms

As one can see there's an obvious pathing issue:

/Developer/JavaTools/tomcat/jakarta-tomcat-5 (See http://cat-5.ora-code.com).5.9/bin/WEB-INF/classes/
org/coffeebreak/config/attributes-config.xml

As one can see there's an obvious pathing issu

Where does the tomcat_home/bin/... come from? The "bin" directory is  
not supposed to be there!

Here's the specific target from my build script which places  
attributes-config.xml into tomcat_home/WEB-INF/classes/org/
coffeebreak/config:

<target name="static" depends="prepare">
     <!-- Copy web files -->
     <copy todir="${webapp.build.dir}/">
         <fileset dir="web" />
     </copy>
     <!-- Copy webapp configuration files -->
     <copy todir="${webapp.build.dir}/WEB-INF/">
         <fileset dir="etc" />
     </copy>
     <!-- Copy library files -->
     <copy todir="${webapp.build.dir}/WEB-INF/lib/">
        <fileset dir="lib" />
     </copy>
      <!-- Copy properties files -->
      <copy todir="${webapp.build.dir}/WEB-INF/classes/">
        <fileset dir="props" />
      </copy>
      <!-- Copy config files -->
      <copy todir="${webapp.build.dir}/WEB-INF/classes/org/
coffeebreak/config/">
        <fileset dir="config" />
      </copy>
      <!-- Copy rules files -->
      <copy todir="${webapp.build.dir}/WEB-INF/classes/org/
coffeebreak/helper/">
        <fileset dir="rules" />
      </copy>
</target>

Here's my deployment descriptor (web.xml) file:

<!DOCTYPE web-app
    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
    "http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>

    <display-name>Coffee Break</display-name>
    <description>
        CoffeeBreak Application
    </description>

    <servlet>
      <servlet-name>CoffeeBreakServlet</servlet-name>
      <servlet-class>org.coffeebreak.CoffeeBreakServlet</servlet-class>
    </servlet>

    <servlet-mapping>
      <servlet-name>CoffeeBreakServlet</servlet-name>
      <url-pattern>/app</url-pattern>
    </servlet-mapping>

    <servlet>
       <servlet-name>log4j-init</servlet-name>
       <servlet-class>org.coffeebreak.logging.Log4jInitServlet</
servlet-class>
       <init-param>
           <param-name>log4j-init-file</param-name>
           <param-value>WEB-INF/classes/log4j.properties</param-value>
       </init-param>
       <load-on-startup>1</load-on-startup>
   </servlet>

   <servlet>
       <servlet-name>xml-config</servlet-name>
       <servlet-class>org.coffeebreak.config.XmlConfigInitServlet</
servlet-class>
       <init-param>
           <param-name>xml-config-file</param-name>
           <param-value>WEB-INF/classes/org/coffeebreak/config/
attributes-config.xml</param-value>
       </init-param>
       <load-on-startup>2</load-on-startup>
   </servlet>

    <servlet>
       <servlet-name>error-init</servlet-name>
       <servlet-class>org.coffeebreak.config.ErrorInitServlet</
servlet-class>
       <init-param>
           <param-name>error-init-file</param-name>
           <param-value>WEB-INF/classes/error.properties</param-value>
       </init-param>
       <load-on-startup>3</load-on-startup>
   </servlet>

</web-app>

Here's my init servlet for the XML file:

package org.coffeebreak.config;

import org.apache.log4j.Logger Source code of org.apache.log4j.Logger;
import org.coffeebreak.helper.AttributeBeanXmlConfigHelper;

import java.io.File Source code of java.io.File;

import javax.servlet.ServletException Source code of javax.servlet.ServletException;
import javax.servlet.http.HttpServlet Source code of javax.servlet.http.HttpServlet;

public class XmlConfigInitServlet extends HttpServlet {
    public void init() throws ServletException {
        String file = getInitParameter("xml-config-file");
        File xmlConfigFile = new File(file);
        if (!xmlConfigFile.exists()) {
            System.out.println("attributes-config.xml not found, "
                    + xmlConfigFile.getAbsolutePath());
        }

        try {
            // Configure Digester from XML ruleset
            AttributeBeanXmlConfigHelper.parse(xmlConfigFile);

            Logger.getLogger(this.getClass()).warn(
                    "Finished parsing the config file.");
        }
        catch (Exception ex) {
            ex.printStackTrace();
        }
    }
}

My helper file (which is showing that the rules file is not loading):

package org.coffeebreak.helper;

import java.io.File Source code of java.io.File;
import java.io.FileInputStream Source code of java.io.FileInputStream;
import java.io.IOException Source code of java.io.IOException;
import java.io.InputStream Source code of java.io.InputStream;
import java.net.URL Source code of java.net.URL;
import java.util.ArrayList Source code of java.util.ArrayList;
import java.util.List Source code of java.util.List;

import org.apache.commons.digester.Digester Source code of org.apache.commons.digester.Digester;
import org.apache.commons.digester.xmlrules.DigesterLoader Source code of org.apache.commons.digester.xmlrules.DigesterLoader;
import org.apache.log4j.Logger Source code of org.apache.log4j.Logger;
import org.coffeebreak.model.AttributeBean;
import org.xml.sax.SAXException Source code of org.xml.sax.SAXException;

public class AttributeBeanXmlConfigHelper {

    private static List<AttributeBean> attributeConfigList = null;

    public static void parse(File xmlConfigFile) throws IOException,
            SAXException {
        URL rules = AttributeBeanXmlConfigHelper.class
                .getResource("attributes-rules.xml");
        Logger.getLogger(AttributeBeanXmlConfigHelper.class).warn(
                "rules: " + rules);
        Digester digester = null;
        try {
            digester = DigesterLoader.createDigester(rules);
        }
        catch (Throwable e) {
            e.printStackTrace();
            e.getCause().printStackTrace();
        }

        // Push empty List onto Digester's Stack
        attributeConfigList = new ArrayList<AttributeBean>();
        digester.push(attributeConfigList);

        // Parse the XML document
        InputStream input = new FileInputStream(xmlConfigFile);
        digester.parse(input);
    }

    public static List<AttributeBean> getConfig() {
        return attributeConfigList;
    }
}

What could I possibly be doing wrong?

Why is it stating this when I start Tomcat:

attributes-config.xml not found, /Developer/JavaTools/tomcat/jakarta-
tomcat-5 (See http://cat-5.ora-code.com).5.9/bin/WEB-INF/classes/org/coffeebreak/config/attributes-
config.xml

it should be without the bin directory:

/Developer/JavaTools/tomcat/jakarta-tomcat-5 (See http://cat-5.ora-code.com).5.9/WEB-INF/classes/org/
coffeebreak/config/attributes-config.xml

Why is the rules file coming out as null?

2007-01-14 03:10:33,074 WARN  
[org.coffeebreak.helper.AttributeBeanXmlConfigHelper] - rules: null

WIth thanks!

James Dekker







©2008 junlu.com - Jax Systems, LLC, U.S.A.