disabling external dtd lookups for DriverDataSourceFactory's XMLReader parser?

From: Mike Kienenberger (mkienen..laska.net)
Date: Thu Sep 23 2004 - 16:56:25 EDT

  • Next message: jir..bjectstyle.org: "[OS-JIRA] Created: (CAY-196) DataObjectUtils.objectForPK should look in shared cache"

    I ran into the most unexpected error today:

    DataSource load failed - External entity not found:
    "http://xmlns.oracle.com/ias/dtds/data-sources-9_04.dtd".

    This was using my custom class OracleApplicationServerXMLDataSourceFactory
    extends DriverDataSourceFactory which just reads a slightly-differently
    formatted xml file for JDBC connection info (JNDI data source flat file
    under Oracle Application Server).

    The error appears to have been caused by this line in the file and the fact
    that the url mentioned was temporarily unavailable.

    <!DOCTYPE data-sources PUBLIC "Orion data-sources"
    "http://xmlns.oracle.com/ias/dtds/data-sources-9_04.dtd">

    My very-ignorant-of-org.xml.sax.XMLReader question is "Can I disable this
    external dtd lookup?" for DriverDataSourceFactory's parser in my subclass?
    I hate to see my daily batch job fail simply because a web page at Oracle is
    down!

    Thanks.

    -Mike

    [This was the full stack trace, but it wasn't very helpful due to all of the
    sax indirection....]

    org.objectstyle.cayenne.ConfigurationException: [v.1.1-dev April 14 2004]
    Error during Configuration initialization. [v.1.1-dev April 14 2004] Load
    failures. Main configuration class:
    org.objectstyle.cayenne.conf.FileConfiguration, details:
            domain.node.name=OnlineBillingNode,
    domain.node.datasource=jdbc/CachedDS, reason: DataSource load failed -
    External entity not found:
    "http://xmlns.oracle.com/ias/dtds/data-sources-9_04.dtd".
            at
    org.objectstyle.cayenne.conf.Configuration.initializeSharedConfiguration(Configuration.java:304)
            at
    com.gvea.struts.ebpp.business.batch.CronBasedTaskScheduler.main(CronBasedTaskScheduler.java:496)
    Caused by: org.objectstyle.cayenne.ConfigurationException: [v.1.1-dev April
    14 2004] Load failures. Main configuration class:
    org.objectstyle.cayenne.conf.FileConfiguration, details:
            domain.node.name=OnlineBillingNode,
    domain.node.datasource=jdbc/CachedDS, reason: DataSource load failed -
    External entity not found:
    "http://xmlns.oracle.com/ias/dtds/data-sources-9_04.dtd".
            at
    org.objectstyle.cayenne.conf.RuntimeLoadDelegate.finishedLoading(RuntimeLoadDelegate.java:589)
            at
    org.objectstyle.cayenne.conf.ConfigLoader.loadDomains(ConfigLoader.java:117)
            at
    org.objectstyle.cayenne.conf.DefaultConfiguration.initialize(DefaultConfiguration.java:185)
            at
    org.objectstyle.cayenne.conf.Configuration.initializeSharedConfiguration(Configuration.java:296)
            ... 1 more
    E



    This archive was generated by hypermail 2.0.0 : Thu Sep 23 2004 - 16:55:23 EDT