You are viewing a plain text version of this content. The canonical link for it is here.
Posted to j-users@xerces.apache.org by Jon Wilmoth <jo...@yahoo.com> on 2004/07/22 01:18:04 UTC

java.net.MalformedURLException from XMLVersionDetector.determineDocVersion?

I'm having problems parsing an xml config doc of an
open source scheduling tool (Quartz).  The document
(below)is well formed and valid. I'm able to
successfully validate it using and xml editor (Stylus
Studio) and with Xerces in a stand-alone command line
parsing utility.  However, when the document is parsed
during server startup (Tomcat v5.0.25) I get the
following exception:

Jul-21-2004 4:04:12:720 PM, PDT [INFO ]
(org.quartz.xml.JobSchedulingDataProcessor:?) --
Parsing XML file:
webapps/chronos/web-inf/ScheduledJobs.xml with
systemId: null validating: true validating schema:
file:/C:/dev/java/jakarta/tomcat-5.0.25/work/Catalina/localhost/chronos/loader/org/quartz/xml/job_scheduling_data_1_1.xsd
Jul-21-2004 4:04:12:740 PM, PDT [ERROR]
(org.quartz.plugins.xml.JobInitializationPlugin:?) --
Error scheduling jobs: null
java.net.MalformedURLException
	at java.net.URL.<init>(URL.java:571)
	at java.net.URL.<init>(URL.java:434)
	at java.net.URL.<init>(URL.java:383)
	at
org.apache.xerces.impl.XMLEntityManager.setupCurrentEntity(Unknown
Source)
	at
org.apache.xerces.impl.XMLVersionDetector.determineDocVersion(Unknown
Source)
	at
org.apache.xerces.parsers.XML11Configuration.parse(Unknown
Source)
	at
org.apache.xerces.parsers.XML11Configuration.parse(Unknown
Source)
	at org.apache.xerces.parsers.XMLParser.parse(Unknown
Source)
	at
org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown
Source)
	at
org.apache.commons.digester.Digester.parse(Digester.java:1548)
	at
org.quartz.xml.JobSchedulingDataProcessor.processFile(JobSchedulingDataProcessor.java:369)
	at
org.quartz.xml.JobSchedulingDataProcessor.processFileAndScheduleJobs(JobSchedulingDataProcessor.java:394)
	at
org.quartz.plugins.xml.JobInitializationPlugin.processFile(JobInitializationPlugin.java:347)
	at
org.quartz.plugins.xml.JobInitializationPlugin.start(JobInitializationPlugin.java:317)
	at
org.quartz.core.QuartzScheduler.startPlugins(QuartzScheduler.java:1800)
	at
org.quartz.core.QuartzScheduler.start(QuartzScheduler.java:367)
	at
org.quartz.impl.StdScheduler.start(StdScheduler.java:149)
	at
org.quartz.ee.servlet.QuartzInitializerServlet.init(QuartzInitializerServlet.java:126)
	at
org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1019)
	at
org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:862)
	at
org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3991)
	at
org.apache.catalina.core.StandardContext.start(StandardContext.java:4335)
	at
org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1083)
	at
org.apache.catalina.core.StandardHost.start(StandardHost.java:789)
	at
org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1083)
	at
org.apache.catalina.core.StandardEngine.start(StandardEngine.java:478)
	at
org.apache.catalina.core.StandardService.start(StandardService.java:476)
	at
org.apache.catalina.core.StandardServer.start(StandardServer.java:2298)
	at
org.apache.catalina.startup.Catalina.start(Catalina.java:556)
	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.invoke(Method.java:324)
	at
org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:284)
	at
org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:422)
 


What is the root cause for this failure?  What is it
that Xerces is trying to do that it can't?


<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE quartz SYSTEM
"file:///apex/projects/internal/timeentry/extlib/job_scheduling_data_1_0.dtd">
<quartz>
 <job>
  <job-detail>
   <name>ExpireRoleAssignmentsJob</name>
   <group>authorization</group>
  
<job-class>com.apex.chronos.app.authorization.ExpireRoleAssignmentsJob</job-class>
   <volatility>true</volatility>
   <durability>false</durability>
   <recover>false</recover>
  </job-detail>
  <trigger>
   <cron>
    <name>ExpireRolesCronTrigger</name>
    <group>authorization-triggers</group>
    <job-name>ExpireRoleAssignmentsJob</job-name>
    <job-group>authorization</job-group>
    <!-- Every day at 11:55pm -->
    <cron-expression>0 55 23 ? * *</cron-expression>
    <time-zone>America/Los_Angeles</time-zone>
   </cron>
  </trigger>
 </job>
</quartz>


---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-j-user-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-j-user-help@xml.apache.org


Re: java.net.MalformedURLException from XMLVersionDetector.determineDocVersion?

Posted by Jon Wilmoth <jo...@yahoo.com>.
Thank you!  That was the key I needed.  It turns out
the file was being deployed to the web-app's WEB-INF
directory.  The quartz code that parses the document
uses ClassLoader.getResourceAsStream to get the
document.  Unfortunately the servlet container class
loader didn't wasn't reading the WEB-INF directory,
but rather the WEB-INF/classes & WEB-INF/lib
directory.  Moving the deployment location allowed the
classloader to find the doc and parse it.

Thanks again!

--- Michael Glavassevich <mr...@ca.ibm.com> wrote:
> Hello Jon,
> 
> From the error message it looks like the parser is
> being passed a 
> org.xml.sax.InputSource with all null fields. That
> would explain the 
> failure.
> 
> Jon Wilmoth <jo...@yahoo.com> wrote on
> 07/21/2004 07:18:04 PM:
> 
> > I'm having problems parsing an xml config doc of
> an
> > open source scheduling tool (Quartz).  The
> document
> > (below)is well formed and valid. I'm able to
> > successfully validate it using and xml editor
> (Stylus
> > Studio) and with Xerces in a stand-alone command
> line
> > parsing utility.  However, when the document is
> parsed
> > during server startup (Tomcat v5.0.25) I get the
> > following exception:
> > 
> > Jul-21-2004 4:04:12:720 PM, PDT [INFO ]
> > (org.quartz.xml.JobSchedulingDataProcessor:?) --
> > Parsing XML file:
> > webapps/chronos/web-inf/ScheduledJobs.xml with
> > systemId: null validating: true validating schema:
> > file:/C:/dev/java/jakarta/tomcat-5.0.
> > 
>
25/work/Catalina/localhost/chronos/loader/org/quartz/xml/job_scheduling_data_1_1.
> > xsd
> > Jul-21-2004 4:04:12:740 PM, PDT [ERROR]
> > (org.quartz.plugins.xml.JobInitializationPlugin:?)
> --
> > Error scheduling jobs: null
> > java.net.MalformedURLException
> >    at java.net.URL.<init>(URL.java:571)
> >    at java.net.URL.<init>(URL.java:434)
> >    at java.net.URL.<init>(URL.java:383)
> >    at
> >
>
org.apache.xerces.impl.XMLEntityManager.setupCurrentEntity(Unknown
> > Source)
> >    at
> >
>
org.apache.xerces.impl.XMLVersionDetector.determineDocVersion(Unknown
> > Source)
> >    at
> >
>
org.apache.xerces.parsers.XML11Configuration.parse(Unknown
> > Source)
> >    at
> >
>
org.apache.xerces.parsers.XML11Configuration.parse(Unknown
> > Source)
> >    at
> org.apache.xerces.parsers.XMLParser.parse(Unknown
> > Source)
> >    at
> >
>
org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown
> > Source)
> >    at
> >
>
org.apache.commons.digester.Digester.parse(Digester.java:1548)
> >    at
> > org.quartz.xml.JobSchedulingDataProcessor.
> > processFile(JobSchedulingDataProcessor.java:369)
> >    at
> > org.quartz.xml.JobSchedulingDataProcessor.
> >
>
processFileAndScheduleJobs(JobSchedulingDataProcessor.java:394)
> >    at
> > org.quartz.plugins.xml.JobInitializationPlugin.
> > processFile(JobInitializationPlugin.java:347)
> >    at
> > org.quartz.plugins.xml.JobInitializationPlugin.
> > start(JobInitializationPlugin.java:317)
> >    at
> >
>
org.quartz.core.QuartzScheduler.startPlugins(QuartzScheduler.java:1800)
> >    at
> >
>
org.quartz.core.QuartzScheduler.start(QuartzScheduler.java:367)
> >    at
> >
>
org.quartz.impl.StdScheduler.start(StdScheduler.java:149)
> >    at
> > org.quartz.ee.servlet.QuartzInitializerServlet.
> > init(QuartzInitializerServlet.java:126)
> >    at
> > org.apache.catalina.core.StandardWrapper.
> > loadServlet(StandardWrapper.java:1019)
> >    at
> >
>
org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:862)
> >    at
> > org.apache.catalina.core.StandardContext.
> > loadOnStartup(StandardContext.java:3991)
> >    at
> > 
>
org.apache.catalina.core.StandardContext.start(StandardContext.java:4335)
> >    at
> >
>
org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1083)
> >    at
> >
>
org.apache.catalina.core.StandardHost.start(StandardHost.java:789)
> >    at
> >
>
org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1083)
> >    at
> >
>
org.apache.catalina.core.StandardEngine.start(StandardEngine.java:478)
> >    at
> >
>
org.apache.catalina.core.StandardService.start(StandardService.java:476)
> >    at
> >
>
org.apache.catalina.core.StandardServer.start(StandardServer.java:2298)
> >    at
> >
>
org.apache.catalina.startup.Catalina.start(Catalina.java:556)
> >    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.invoke(Method.java:324)
> >    at
> >
>
org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:284)
> >    at
> >
>
org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:422)
> > 
> > 
> > 
> > What is the root cause for this failure?  What is
> it
> > that Xerces is trying to do that it can't?
> > 
> > 
> > <?xml version="1.0" encoding="utf-8"?>
> > <!DOCTYPE quartz SYSTEM
> > 
>
"file:///apex/projects/internal/timeentry/extlib/job_scheduling_data_1_0.dtd">
> > <quartz>
> >  <job>
> >   <job-detail>
> >    <name>ExpireRoleAssignmentsJob</name>
> >    <group>authorization</group>
> > 
> > <job-class>com.apex.chronos.app.authorization.
> > ExpireRoleAssignmentsJob</job-class>
> >    <volatility>true</volatility>
> >    <durability>false</durability>
> >    <recover>false</recover>
> >   </job-detail>
> >   <trigger>
> >    <cron>
> >     <name>ExpireRolesCronTrigger</name>
> >     <group>authorization-triggers</group>
> >     <job-name>ExpireRoleAssignmentsJob</job-name>
> >     <job-group>authorization</job-group>
> >     <!-- Every day at 11:55pm -->
> >     <cron-expression>0 55 23 ? *
> *</cron-expression>
> >     <time-zone>America/Los_Angeles</time-zone>
> >    </cron>
> >   </trigger>
> >  </job>
> > </quartz>
> > 
> > 
> >
>
---------------------------------------------------------------------
> > To unsubscribe, e-mail:
> xerces-j-user-unsubscribe@xml.apache.org
> > For additional commands, e-mail:
> xerces-j-user-help@xml.apache.org
> > 
> 
> Michael Glavassevich
> XML Parser Development
> IBM Toronto Lab
> E-mail: mrglavas@ca.ibm.com
> E-mail: mrglavas@apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-j-user-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-j-user-help@xml.apache.org


Re: java.net.MalformedURLException from XMLVersionDetector.determineDocVersion?

Posted by Michael Glavassevich <mr...@ca.ibm.com>.
Hello Jon,

>From the error message it looks like the parser is being passed a 
org.xml.sax.InputSource with all null fields. That would explain the 
failure.

Jon Wilmoth <jo...@yahoo.com> wrote on 07/21/2004 07:18:04 PM:

> I'm having problems parsing an xml config doc of an
> open source scheduling tool (Quartz).  The document
> (below)is well formed and valid. I'm able to
> successfully validate it using and xml editor (Stylus
> Studio) and with Xerces in a stand-alone command line
> parsing utility.  However, when the document is parsed
> during server startup (Tomcat v5.0.25) I get the
> following exception:
> 
> Jul-21-2004 4:04:12:720 PM, PDT [INFO ]
> (org.quartz.xml.JobSchedulingDataProcessor:?) --
> Parsing XML file:
> webapps/chronos/web-inf/ScheduledJobs.xml with
> systemId: null validating: true validating schema:
> file:/C:/dev/java/jakarta/tomcat-5.0.
> 
25/work/Catalina/localhost/chronos/loader/org/quartz/xml/job_scheduling_data_1_1.
> xsd
> Jul-21-2004 4:04:12:740 PM, PDT [ERROR]
> (org.quartz.plugins.xml.JobInitializationPlugin:?) --
> Error scheduling jobs: null
> java.net.MalformedURLException
>    at java.net.URL.<init>(URL.java:571)
>    at java.net.URL.<init>(URL.java:434)
>    at java.net.URL.<init>(URL.java:383)
>    at
> org.apache.xerces.impl.XMLEntityManager.setupCurrentEntity(Unknown
> Source)
>    at
> org.apache.xerces.impl.XMLVersionDetector.determineDocVersion(Unknown
> Source)
>    at
> org.apache.xerces.parsers.XML11Configuration.parse(Unknown
> Source)
>    at
> org.apache.xerces.parsers.XML11Configuration.parse(Unknown
> Source)
>    at org.apache.xerces.parsers.XMLParser.parse(Unknown
> Source)
>    at
> org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown
> Source)
>    at
> org.apache.commons.digester.Digester.parse(Digester.java:1548)
>    at
> org.quartz.xml.JobSchedulingDataProcessor.
> processFile(JobSchedulingDataProcessor.java:369)
>    at
> org.quartz.xml.JobSchedulingDataProcessor.
> processFileAndScheduleJobs(JobSchedulingDataProcessor.java:394)
>    at
> org.quartz.plugins.xml.JobInitializationPlugin.
> processFile(JobInitializationPlugin.java:347)
>    at
> org.quartz.plugins.xml.JobInitializationPlugin.
> start(JobInitializationPlugin.java:317)
>    at
> org.quartz.core.QuartzScheduler.startPlugins(QuartzScheduler.java:1800)
>    at
> org.quartz.core.QuartzScheduler.start(QuartzScheduler.java:367)
>    at
> org.quartz.impl.StdScheduler.start(StdScheduler.java:149)
>    at
> org.quartz.ee.servlet.QuartzInitializerServlet.
> init(QuartzInitializerServlet.java:126)
>    at
> org.apache.catalina.core.StandardWrapper.
> loadServlet(StandardWrapper.java:1019)
>    at
> org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:862)
>    at
> org.apache.catalina.core.StandardContext.
> loadOnStartup(StandardContext.java:3991)
>    at
> 
org.apache.catalina.core.StandardContext.start(StandardContext.java:4335)
>    at
> org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1083)
>    at
> org.apache.catalina.core.StandardHost.start(StandardHost.java:789)
>    at
> org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1083)
>    at
> org.apache.catalina.core.StandardEngine.start(StandardEngine.java:478)
>    at
> org.apache.catalina.core.StandardService.start(StandardService.java:476)
>    at
> org.apache.catalina.core.StandardServer.start(StandardServer.java:2298)
>    at
> org.apache.catalina.startup.Catalina.start(Catalina.java:556)
>    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.invoke(Method.java:324)
>    at
> org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:284)
>    at
> org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:422)
> 
> 
> 
> What is the root cause for this failure?  What is it
> that Xerces is trying to do that it can't?
> 
> 
> <?xml version="1.0" encoding="utf-8"?>
> <!DOCTYPE quartz SYSTEM
> 
"file:///apex/projects/internal/timeentry/extlib/job_scheduling_data_1_0.dtd">
> <quartz>
>  <job>
>   <job-detail>
>    <name>ExpireRoleAssignmentsJob</name>
>    <group>authorization</group>
> 
> <job-class>com.apex.chronos.app.authorization.
> ExpireRoleAssignmentsJob</job-class>
>    <volatility>true</volatility>
>    <durability>false</durability>
>    <recover>false</recover>
>   </job-detail>
>   <trigger>
>    <cron>
>     <name>ExpireRolesCronTrigger</name>
>     <group>authorization-triggers</group>
>     <job-name>ExpireRoleAssignmentsJob</job-name>
>     <job-group>authorization</job-group>
>     <!-- Every day at 11:55pm -->
>     <cron-expression>0 55 23 ? * *</cron-expression>
>     <time-zone>America/Los_Angeles</time-zone>
>    </cron>
>   </trigger>
>  </job>
> </quartz>
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: xerces-j-user-unsubscribe@xml.apache.org
> For additional commands, e-mail: xerces-j-user-help@xml.apache.org
> 

Michael Glavassevich
XML Parser Development
IBM Toronto Lab
E-mail: mrglavas@ca.ibm.com
E-mail: mrglavas@apache.org