Salut tout le monde !
Je travail sur une application web Java , qui doit faire des plannification de taches.
J'utilise Tomcat ... donc j'aimerai pouvoir intégré Quartz mon appli grace au plugin xml .
Mes fichiers :

/monappli/WEB-INF/web.xml
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">
  <servlet>
    <servlet-name>QuartzInitializer</servlet-name>
    <servlet-class>org.quartz.ee.servlet.QuartzInitializerServlet</servlet-class>
    <init-param>
      <param-name>config-file</param-name>
      <param-value>/quartz.properties</param-value>
    </init-param>
    <init-param>
      <param-name>shutdown-on-unload</param-name>
      <param-value>true</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
</web-app>
/monappli/WEB-INF/classes/quartz.properties

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#============================================================================
# Configure Main Scheduler Properties
#============================================================================
 
org.quartz.scheduler.instanceName = PhoenixScheduler
org.quartz.scheduler.instanceId = AUTO
 
#============================================================================
# Configure ThreadPool
#============================================================================
 
org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount = 10
org.quartz.threadPool.threadPriority = 5
 
#============================================================================
# Configure JobStore
#============================================================================
 
 
 
#org.quartz.jobStore.class = org.quartz.simpl.RAMJobStore
 
org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX
org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.StdJDBCDelegate
org.quartz.jobStore.useProperties = false
org.quartz.jobStore.dataSource = QRTZ_DS
org.quartz.jobStore.tablePrefix = QRTZ_
org.quartz.jobStore.misfireThreshold = 60000
org.quartz.jobStore.isClustered = false
 
#============================================================================
# Configure Datasources
#============================================================================
 
org.quartz.dataSource.myDS.driver = org.gjt.mm.mysql.Driver
org.quartz.dataSource.myDS.URL = jdbc:mysql://localhost/phoenix
org.quartz.dataSource.myDS.user = user
org.quartz.dataSource.myDS.password = phoenix
org.quartz.dataSource.myDS.maxConnections = 5
org.quartz.dataSource.myDS.validationQuery = select lock_name from qrtz_locks where lock_name = 'TRIGGER_ACCESS';
 
 
#============================================================================
# Configure Plugins
#============================================================================
 
org.quartz.plugin.triggHistory.class = org.quartz.plugins.history.LoggingTriggerHistoryPlugin
org.quartz.plugin.triggHistory.triggerFiredMessage = Trigger {1}.{0} fired job {6}.{5} at: {4, date, HH:mm:ss MM/dd/yyyy}
org.quartz.plugin.triggHistory.triggerCompleteMessage = Trigger {1}.{0} completed firing job {6}.{5} at {4, date, HH:mm:ss MM/dd/yyyy} with resulting trigger instruction code: {9}
 
 
org.quartz.plugin.jobInitializer.class = org.quartz.plugins.xml.JobInitializationPlugin
org.quartz.plugin.jobInitializer.fileName = /jobs.xml
org.quartz.plugin.jobInitializer.overWriteExistingJobs = false
org.quartz.plugin.jobInitializer.failOnFileNotFound = true
org.quartz.plugin.jobInitializer.useContextClassLoader = true
org.quartz.plugin.jobInitializer.validating = true
org.quartz.plugin.jobInitializer.validatingSchema = true
org.quartz.plugin.jobInitializer.scanInterval = 30
/monappli/WEB-INF/classes/jobs.xml
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<?xml version='1.0' encoding='utf-8'?>
 
<quartz xmlns="http://www.quartzscheduler.org/ns/quartz"
	      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	      xsi:schemaLocation="http://www.quartzscheduler.org/ns/quartz http://www.quartzscheduler.org/ns/quartz/job_scheduling_data_1_1.xsd"
	      version="1.1">
 
 
	<calendar class-name="org.quartz.impl.calendar.HolidayCalendar" replace="true">
		<name>holidayCalendar</name>
		<description>HolidayCalendar</description>
		<base-calendar class-name="org.quartz.impl.calendar.WeeklyCalendar">
			<name>weeklyCalendar</name>
			<description>WeeklyCalendar</description>
			<base-calendar class-name="org.quartz.impl.calendar.AnnualCalendar">
				<name>annualCalendar</name>
				<description>AnnualCalendar</description>
			</base-calendar>
		</base-calendar>
  </calendar>
 
<job>
    <job-detail>
      <name>phoenixjob</name>
      <group>testJobs</group>
      <job-class>fr.phoenix.monitor.PhoenixJob</job-class>
      <volatility>false</volatility>
      <durability>true</durability>
      <recover>false</recover>
    </job-detail>
    <trigger>
      <cron>
        <name>testTrigger3</name>
        <group>testJobs</group>
        <job-name>phoenixjob</job-name>
        <job-group>testJobs</job-group>
        <!-- <start-time>2003-12-17 2:15:00 pm</start-time> -->
        <!-- <end-time>2013-12-17 2:15:00 pm</end-time> -->
        <cron-expression>0/15 * * ? * *</cron-expression> <!-- every 15 seconds... -->
      </cron>
    </trigger>
  </job>
 
</quartz>
Et quand je lance tomcat (5.0 sous windows XP) , j'obtient :
2005-08-03 17:23:48 StandardContext[/balancer]org.apache.webapp.balancer.BalancerFilter: init(): ruleChain: [org.apache.webapp.balancer.RuleChain: [org.apache.webapp.balancer.rules.URLStringMatchRule: Target string: News / Redirect URL: http://www.cnn.com], [org.apache.webapp.balancer.rules.RequestParameterRule: Target param name: paramName / Target param value: paramValue / Redirect URL: http://www.yahoo.com], [org.apache.webapp.balancer.rules.AcceptEverythingRule: Redirect URL: http://jakarta.apache.org]]
2005-08-03 17:23:49 StandardContext[/jsp-examples]ContextListener: contextInitialized()
2005-08-03 17:23:49 StandardContext[/jsp-examples]SessionListener: contextInitialized()
2005-08-03 17:24:06 StandardContext[/phoenix_monitor]QuartzInitializer: Quartz Initializer Servlet loaded, initializing Scheduler...
2005-08-03 17:24:07 StandardContext[/phoenix_monitor]QuartzInitializer: Quartz Scheduler failed to initialize: org.quartz.SchedulerException: File named '/jobs.xml' does not exist.
2005-08-03 17:24:07 StandardContext[/phoenix_monitor]La servlet /phoenix_monitor a généré une exception "load()"
javax.servlet.ServletException: File named '/jobs.xml' does not exist.
at org.quartz.ee.servlet.QuartzInitializerServlet.init(QuartzInitializerServlet.java:130)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1029)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:862)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4013)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4357)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:823)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:807)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:595)
at org.apache.catalina.core.StandardHostDeployer.install(StandardHostDeployer.java:277)
at org.apache.catalina.core.StandardHost.install(StandardHost.java:832)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:701)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:432)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:983)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:349)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1091)
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:480)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:2313)
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:287)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:425)
----- Root Cause -----
org.quartz.SchedulerException: File named '/jobs.xml' does not exist.
at org.quartz.plugins.xml.JobInitializationPlugin.findFile(JobInitializationPlugin.java:311)
at org.quartz.plugins.xml.JobInitializationPlugin.initialize(JobInitializationPlugin.java:274)
at org.quartz.impl.StdSchedulerFactory.instantiate(StdSchedulerFactory.java:892)
at org.quartz.impl.StdSchedulerFactory.getScheduler(StdSchedulerFactory.java:1047)
at org.quartz.ee.servlet.QuartzInitializerServlet.init(QuartzInitializerServlet.java:125)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1029)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:862)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4013)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4357)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:823)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:807)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:595)
at org.apache.catalina.core.StandardHostDeployer.install(StandardHostDeployer.java:277)
at org.apache.catalina.core.StandardHost.install(StandardHost.java:832)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:701)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:432)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:983)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:349)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1091)
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:480)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:2313)
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:287)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:425)

2005-08-03 17:24:07 StandardContext[/servlets-examples]ContextListener: contextInitialized()
2005-08-03 17:24:07 StandardContext[/servlets-examples]SessionListener: contextInitialized()
Siquelqu'un peut m'aider rapidement ...
merci d'avance ! ^^