2012-12-19 12 views
8

Sto cercando di ottenere un esempio di base di Spring e Quartz per funzionare. Ecco il tutorial che sto seguendo: http://www.mkyong.com/spring/spring-quartz-scheduler-example/Java: Spring/Quartz: codice di esercitazione di base non funzionante

Ho copiato tutto esattamente quanto posso dire, ma non vedo nulla nella finestra di output.

primavera-quartz.xml

<beans xmlns="http://www.springframework.org/schema/beans" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://www.springframework.org/schema/beans 
    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> 

    <bean id="runMeTask" class="com.ksc.jobs.RunMeTask" /> 

    <!-- Spring Quartz --> 
    <bean name="runMeJob" class="org.springframework.scheduling.quartz.JobDetailBean"> 
     <property name="jobClass" value="com.ksc.jobs.RunMeJob" /> 
     <property name="jobDataAsMap"> 
      <map> 
       <entry key="runMeTask" value-ref="runMeTask" /> 
      </map> 
     </property> 

    </bean> 

    <bean id="simpleTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerBean"> 
     <property name="jobDetail" ref="runMeJob" /> 
     <property name="repeatInterval" value="5000" /> 
     <property name="startDelay" value="1000" /> 

    </bean> 

    <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> 
     <property name="jobDetails"> 
      <list> 
       <ref bean="runMeJob" /> 
      </list> 
     </property> 

     <property name="triggers"> 
      <list> 
       <ref bean="simpleTrigger" /> 
      </list> 
     </property> 
    </bean> 

</beans> 

applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> 

    <import resource="spring-quartz.xml"/> 
</beans> 

Progetto Struttura

enter image description here

EDIT

ho bisogno per avviare manualmente il lavoro in qualche modo? Vedo in quel tutorial e in altri, di solito iniziano un lavoro al quarzo all'interno di un metodo main(). Provengo da uno sfondo .NET che mi sembra un po 'strano, dato che conosco solo i metodi main nelle app desktop; non app web. In ASP.NET abbiamo Global.asax dove possiamo chiamare il codice da eseguire all'avvio dell'app web. C'è qualche equivalente in Java? O forse questo non è nemmeno il problema? Sto solo indovinando qui. Se qualcuno ha qualche idea su come risolvere questo o anche solo mi dà un campione funzionante (può essere diverso da quello sopra anche, io non sono pignolo) ... quindi lo apprezzerei di più. Ho solo bisogno di un campione di lavoro di base che possa poi essere modificato in base alle mie esigenze.

EDIT 2

ecco l'output del server GlassFish, se aiuta:

[NOTA: Rimosso a causa di lunghezza del corpo di questo post essere troppo lungo. Altrimenti non sarei in grado di pubblicare Modifica # 3 di seguito.]

EDIT 3

alcuni progressi, ma ancora non funziona. Ho aggiunto il file log4j come suggerito da @shuttsy ed ecco la nuova uscita da GlassFish:

Launching GlassFish on Felix platform 
INFO: Running GlassFish Version: GlassFish Server Open Source Edition 3.1.2.2 (build 5) 
INFO: Registered org.glassfish.ha.store.adapter.cache.ShoalBackingStoreProxy for persistence-type = replicated in BackingStoreFactoryRegistry 
INFO: Grizzly Framework 1.9.50 started in: 0ms - bound to [0.0.0.0:3700] 
INFO: Grizzly Framework 1.9.50 started in: 31ms - bound to [0.0.0.0:8080] 
INFO: Grizzly Framework 1.9.50 started in: 15ms - bound to [0.0.0.0:8181] 
INFO: Grizzly Framework 1.9.50 started in: 15ms - bound to [0.0.0.0:4848] 
INFO: Grizzly Framework 1.9.50 started in: 0ms - bound to [0.0.0.0:7676] 
INFO: The Admin Console is already installed, but not yet loaded. 
INFO: GlassFish Server Open Source Edition 3.1.2.2 (5) startup time : Felix (1,750ms), startup services(771ms), total(2,521ms) 
INFO: HV000001: Hibernate Validator 4.3.0.Final 
INFO: JMX005: JMXStartupService had Started JMXConnector on JMXService URL service:jmx:rmi://Matt-Laptop:8686/jndi/rmi://Matt-Laptop:8686/jmxrmi 
INFO: Grizzly Framework 1.9.50 started in: 0ms - bound to [0.0.0.0:8080] 
INFO: Grizzly Framework 1.9.50 started in: 0ms - bound to [0.0.0.0:8181] 
INFO: Created EjbThreadPoolExecutor with thread-core-pool-size 16 thread-max-pool-size 32 thread-keep-alive-seconds 60 thread-queue-capacity 2147483647 allow-core-thread-timeout false 
INFO: SEC1002: Security Manager is OFF. 
INFO: SEC1010: Entering Security Startup Service 
INFO: SEC1143: Loading policy provider com.sun.enterprise.security.provider.PolicyWrapper. 
INFO: SEC1115: Realm [admin-realm] of classtype [com.sun.enterprise.security.auth.realm.file.FileRealm] successfully created. 
INFO: SEC1115: Realm [file] of classtype [com.sun.enterprise.security.auth.realm.file.FileRealm] successfully created. 
INFO: SEC1115: Realm [certificate] of classtype [com.sun.enterprise.security.auth.realm.certificate.CertificateRealm] successfully created. 
INFO: SEC1011: Security Service(s) Started Successfully 
INFO: WEB0169: Created HTTP listener [http-listener-1] on host/port [0.0.0.0:8080] 
INFO: WEB0169: Created HTTP listener [http-listener-2] on host/port [0.0.0.0:8181] 
INFO: WEB0169: Created HTTP listener [admin-listener] on host/port [0.0.0.0:4848] 
INFO: WEB0171: Created virtual server [server] 
INFO: WEB0171: Created virtual server [__asadmin] 
INFO: WEB0172: Virtual server [server] loaded default web module [] 
SEVERE: Exception while visiting com/sun/gjc/spi/JdbcObjectsFactory.class of size 3615 
java.lang.NullPointerException 
    at org.glassfish.hk2.classmodel.reflect.impl.TypesImpl.getType(TypesImpl.java:78) 
    at org.glassfish.hk2.classmodel.reflect.impl.ModelClassVisitor.visit(ModelClassVisitor.java:119) 
    at org.objectweb.asm.ClassReader.accept(Unknown Source) 
    at org.objectweb.asm.ClassReader.accept(Unknown Source) 
    at org.glassfish.hk2.classmodel.reflect.Parser$5.on(Parser.java:363) 
    at org.glassfish.hk2.classmodel.reflect.util.JarArchive.onSelectedEntries(JarArchive.java:125) 
    at org.glassfish.hk2.classmodel.reflect.Parser.doJob(Parser.java:348) 
    at org.glassfish.hk2.classmodel.reflect.Parser.access$300(Parser.java:70) 
    at org.glassfish.hk2.classmodel.reflect.Parser$3.call(Parser.java:307) 
    at org.glassfish.hk2.classmodel.reflect.Parser$3.call(Parser.java:296) 
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:166) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) 
    at java.lang.Thread.run(Thread.java:722) 

INFO: EclipseLink, version: Eclipse Persistence Services - 2.3.2.v20111125-r10461 
INFO: file:/C:/Users/Matt/Documents/NetBeansProjects/KSC/build/web/WEB-INF/classes/_KSCPU login successful 
WARNING: Multiple [2] JMX MBeanServer instances exist, we will use the server at index [0] : [[email protected]]. 
WARNING: JMX MBeanServer in use: [[email protected]] from index [0] 
WARNING: JMX MBeanServer in use: [[email protected]] from index [1] 
SEVERE: log4j:ERROR log4j called after unloading, see http://logging.apache.org/log4j/1.2/faq.html#unload. 
SEVERE: java.lang.IllegalStateException: Class invariant violation 
    at org.apache.log4j.LogManager.getLoggerRepository(LogManager.java:199) 
    at org.apache.log4j.LogManager.getLogger(LogManager.java:228) 
    at org.slf4j.impl.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:64) 
    at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:253) 
    at org.apache.commons.logging.impl.SLF4JLogFactory.getInstance(SLF4JLogFactory.java:156) 
    at org.apache.commons.logging.impl.SLF4JLogFactory.getInstance(SLF4JLogFactory.java:132) 
    at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:272) 
    at org.springframework.beans.TypeConverterDelegate.<clinit>(TypeConverterDelegate.java:53) 
    at sun.misc.Unsafe.ensureClassInitialized(Native Method) 
    at sun.reflect.UnsafeFieldAccessorFactory.newFieldAccessor(UnsafeFieldAccessorFactory.java:43) 
    at sun.reflect.ReflectionFactory.newFieldAccessor(ReflectionFactory.java:140) 
    at java.lang.reflect.Field.acquireFieldAccessor(Field.java:949) 
    at java.lang.reflect.Field.getFieldAccessor(Field.java:930) 
    at java.lang.reflect.Field.get(Field.java:372) 
    at org.glassfish.web.loader.WebappClassLoader.clearReferences(WebappClassLoader.java:1833) 
    at org.glassfish.web.loader.WebappClassLoader.stop(WebappClassLoader.java:1662) 
    at org.glassfish.web.loader.WebappClassLoader.preDestroy(WebappClassLoader.java:1631) 
    at org.glassfish.deployment.common.DeploymentContextImpl.getClassLoader(DeploymentContextImpl.java:236) 
    at org.glassfish.deployment.common.DeploymentContextImpl.getClassLoader(DeploymentContextImpl.java:186) 
    at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:450) 
    at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:240) 
    at org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:389) 
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$1.execute(CommandRunnerImpl.java:348) 
    at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:363) 
    at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1085) 
    at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1200(CommandRunnerImpl.java:95) 
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1291) 
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1259) 
    at com.sun.enterprise.v3.admin.AdminAdapter.doCommand(AdminAdapter.java:461) 
    at com.sun.enterprise.v3.admin.AdminAdapter.service(AdminAdapter.java:212) 
    at com.sun.grizzly.tcp.http11.GrizzlyAdapter.service(GrizzlyAdapter.java:179) 
    at com.sun.enterprise.v3.server.HK2Dispatcher.dispath(HK2Dispatcher.java:117) 
    at com.sun.enterprise.v3.services.impl.ContainerMapper$Hk2DispatcherCallable.call(ContainerMapper.java:354) 
    at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:195) 
    at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:860) 
    at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:757) 
    at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1056) 
    at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:229) 
    at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137) 
    at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104) 
    at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90) 
    at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79) 
    at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54) 
    at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59) 
    at com.sun.grizzly.ContextTask.run(ContextTask.java:71) 
    at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532) 
    at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513) 
    at java.lang.Thread.run(Thread.java:722) 

SEVERE:  at org.apache.log4j.LogManager.getLoggerRepository(LogManager.java:199) 
SEVERE:  at org.apache.log4j.LogManager.getLogger(LogManager.java:228) 
SEVERE:  at org.slf4j.impl.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:64) 
SEVERE:  at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:253) 
SEVERE:  at org.apache.commons.logging.impl.SLF4JLogFactory.getInstance(SLF4JLogFactory.java:156) 
SEVERE:  at org.apache.commons.logging.impl.SLF4JLogFactory.getInstance(SLF4JLogFactory.java:132) 
SEVERE:  at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:272) 
SEVERE:  at org.springframework.beans.TypeConverterDelegate.<clinit>(TypeConverterDelegate.java:53) 
SEVERE:  at sun.misc.Unsafe.ensureClassInitialized(Native Method) 
SEVERE:  at sun.reflect.UnsafeFieldAccessorFactory.newFieldAccessor(UnsafeFieldAccessorFactory.java:43) 
SEVERE:  at sun.reflect.ReflectionFactory.newFieldAccessor(ReflectionFactory.java:140) 
SEVERE:  at java.lang.reflect.Field.acquireFieldAccessor(Field.java:949) 
SEVERE:  at java.lang.reflect.Field.getFieldAccessor(Field.java:930) 
SEVERE:  at java.lang.reflect.Field.get(Field.java:372) 
SEVERE:  at org.glassfish.web.loader.WebappClassLoader.clearReferences(WebappClassLoader.java:1833) 
SEVERE:  at org.glassfish.web.loader.WebappClassLoader.stop(WebappClassLoader.java:1662) 
SEVERE:  at org.glassfish.web.loader.WebappClassLoader.preDestroy(WebappClassLoader.java:1631) 
SEVERE:  at org.glassfish.deployment.common.DeploymentContextImpl.getClassLoader(DeploymentContextImpl.java:236) 
SEVERE:  at org.glassfish.deployment.common.DeploymentContextImpl.getClassLoader(DeploymentContextImpl.java:186) 
SEVERE:  at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:450) 
SEVERE:  at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:240) 
SEVERE:  at org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:389) 
SEVERE:  at com.sun.enterprise.v3.admin.CommandRunnerImpl$1.execute(CommandRunnerImpl.java:348) 
SEVERE:  at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:363) 
SEVERE:  at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1085) 
SEVERE:  at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1200(CommandRunnerImpl.java:95) 
SEVERE:  at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1291) 
SEVERE:  at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1259) 
SEVERE:  at com.sun.enterprise.v3.admin.AdminAdapter.doCommand(AdminAdapter.java:461) 
SEVERE:  at com.sun.enterprise.v3.admin.AdminAdapter.service(AdminAdapter.java:212) 
SEVERE:  at com.sun.grizzly.tcp.http11.GrizzlyAdapter.service(GrizzlyAdapter.java:179) 
SEVERE:  at com.sun.enterprise.v3.server.HK2Dispatcher.dispath(HK2Dispatcher.java:117) 
SEVERE:  at com.sun.enterprise.v3.services.impl.ContainerMapper$Hk2DispatcherCallable.call(ContainerMapper.java:354) 
SEVERE:  at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:195) 
SEVERE:  at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:860) 
SEVERE:  at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:757) 
SEVERE:  at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1056) 
SEVERE:  at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:229) 
SEVERE:  at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137) 
SEVERE:  at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104) 
SEVERE:  at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90) 
SEVERE:  at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79) 
SEVERE:  at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54) 
SEVERE:  at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59) 
SEVERE:  at com.sun.grizzly.ContextTask.run(ContextTask.java:71) 
SEVERE:  at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532) 
SEVERE:  at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513) 
SEVERE:  at java.lang.Thread.run(Thread.java:722) 
INFO: EJB5181:Portable JNDI names for EJB EventApplicationService: [java:global/KSC/EventApplicationService!com.ksc.services.EventApplicationService, java:global/KSC/EventApplicationService] 
INFO: EJB5181:Portable JNDI names for EJB SiteSettingService: [java:global/KSC/SiteSettingService!com.ksc.services.SiteSettingService, java:global/KSC/SiteSettingService] 
INFO: EJB5181:Portable JNDI names for EJB EventsService: [java:global/KSC/EventsService, java:global/KSC/EventsService!com.ksc.services.EventsService] 
INFO: EJB5181:Portable JNDI names for EJB UserService: [java:global/KSC/UserService, java:global/KSC/UserService!com.ksc.services.UserService] 
INFO: EJB5181:Portable JNDI names for EJB RoleService: [java:global/KSC/RoleService!com.ksc.services.RoleService, java:global/KSC/RoleService] 
INFO: EJB5181:Portable JNDI names for EJB AnnouncementService: [java:global/KSC/AnnouncementService!com.ksc.services.AnnouncementService, java:global/KSC/AnnouncementService] 
INFO: EJB5181:Portable JNDI names for EJB UserInRoleService: [java:global/KSC/UserInRoleService, java:global/KSC/UserInRoleService!com.ksc.services.UserInRoleService] 
INFO: WELD-000900 1.1.8 (Final) 
INFO: PWC1412: WebModule[null] ServletContext.log():No Spring WebApplicationInitializer types detected on classpath 
INFO: PWC1412: WebModule[null] ServletContext.log():Initializing Spring root WebApplicationContext 
SEVERE: log4j:WARN No appenders could be found for logger (org.springframework.web.context.ContextLoader). 
SEVERE: log4j:WARN Please initialize the log4j system properly. 
SEVERE: log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info. 
INFO: PWC1412: WebModule[null] ServletContext.log():Initializing Spring FrameworkServlet 'dispatcher' 
INFO: WEB0671: Loading application [KSC] at [/KSC] 
INFO: KSC was successfully deployed in 10,070 milliseconds. 

così, abbiamo un nuovo errore qui (che può o non può essere correlato alla mia domanda iniziale) su Quartz . Sembra che l'errore sia correlato a JDBC. Sto usando il driver sqljdbc4: http://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=11774

+0

Puoi condividere il tuo file 'web.xml'? solo per essere sicuro che il file 'applicationContext.xml' sia caricato –

risposta

1

Finalmente ho trovato una soluzione di lavoro !!!

Fondamentalmente, ho preso tutto quello che era in spring-quartz.xml e bloccato nel mio dispatcher-servlet.xml invece ... ora è in esecuzione .. bella ...

mi piace ancora di sapere il motivo per cui l'altro modo didn' Comunque lavoro. Sto indovinando che:

  1. La linea: <import resource="spring-quartz.xml"/> non ha funzionato .. o:
  2. Il file applicationContext.xml stesso non viene caricata ..

Non sono un esperto di Java , quindi non conosco la risposta a quello. Se qualcuno ha un'idea, per favore postala qui. Comunque, grazie a tutti per aver provato. :-)

0

Ho bisogno di avviare manualmente il lavoro in qualche modo?

No, non è necessario avviarli manualmente.

+0

Grazie per questo, Ralph. Ma questo non aiuta ancora la mia preoccupazione principale ... cioè, il lavoro non è affatto in esecuzione e non so perché. Se c'è qualcos'altro che voi ragazzi avete bisogno di me, fatemelo sapere ... questa è la mia prima volta con Spring e con Quartz .. – Matt

+0

Lo so, voglio solo che tu non cerchi il problema nel posto sbagliato. – Ralph

+0

Domanda stupida, ma, sei sicuro che quei fagioli siano caricati nel tuo contenitore Spring? Controlla il tuo file di registro. Personalmente ho utilizzato l'elemento delle attività programmate di Spring con espressioni cron per semplici lavori programmati. – shuttsy

2

L'output di glassfish suggerisce che la configurazione di log4j non è corretta. Hai un file log4j.properties?Prova ad aggiungere uno con contenuto di base:

log4j.rootLogger=INFO,stdout 

log4j.appender.stdout=org.apache.log4j.ConsoleAppender 
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 
log4j.appender.stdout.layout.ConversionPattern=%d %-5p - %m (%c)%n 

Primavera registrerà il file XML caricato e fagioli creati, ma non si ottiene queste informazioni a causa della questione log4j.

Nota: È possibile ottenere lo stesso risultato (che è un compito sparando ogni 5 secondi) con una molto più semplice Primavera xml:

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
xmlns:context="http://www.springframework.org/schema/context" 
xmlns:task="http://www.springframework.org/schema/task" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task.xsd"> 

<bean id="runMeTask" class="com.mkyong.common.RunMeTask" /> 

<task:scheduled-tasks> 
    <task:scheduled ref="runMeTask" method="printMe" cron="0/5 * * * * * " /> 
</task:scheduled-tasks> 

Prova a modificare, si ottiene l'output adesso?

+0

Grazie; Mi piace semplice In ogni caso, non funziona ancora. Dove posso trovare il file di registro che hai menzionato prima? – Matt

+0

Sto usando Spring Source Tool Suite come mido IDE, il mio output viene generato nella mia finestra 'Console'. Vedi qualcosa che suggerisce l'inizio di un contenitore di primavera e quali fagioli ci sono dentro? – shuttsy

+0

Grazie, ho visto la tua modifica solo un po 'di tempo fa. Non l'ho notato prima perché non hai messo la parola ** EDIT ** nella tua risposta. Ora ho aggiunto il file delle proprietà log4j e sembra aver risolto il messaggio di errore, ma ora mostra un nuovo errore, che sembra essere correlato a jdbc. Vedi Modifica n. 3 nel mio post in alto. – Matt

0

provare a cambiare

<import resource="spring-quartz.xml"/> 

a

<import resource="/WEB-INF/spring-quartz.xml"/> 
+0

Non funziona, ma grazie per aver provato :) – Matt

1

Sì, il problema era il file applicationContext.xml non è stato caricato.

Come applicazione Web il file di configurazione predefinito caricato è il file -servlet.xml.

Normalmente tutti i bean relativi alla gomma per il Web verranno dichiarati in questo file di configurazione.

Se volete file di contesto distinto da caricare, è necessario specificare nel file web.xml Es:

<context-param> 
    <param-name>contextConfigLocation</param-name> 
    <param-value> 
     /WEB-INF/applicationContext.xml 
    </param-value> 
</context-param> 

<context-param> 
    <param-name>contextClass</param-name> 
    <param-value> 
     org.springframework.web.context.support.XmlWebApplicationContext 
    </param-value> 
</context-param> 

<listener> 
    <listener-class> 
     org.springframework.web.context.ContextLoaderListener 
    </listener-class> 
</listener> 

Nel tuo caso o si può spostare il <import resource="spring-quartz.xml"/> a dispatcher-servlet.xml o è possibile aggiungere il supporto per il file applicationContext.xml

+0

+1, grazie per le informazioni. :-) – Matt

0

Prima della configurazione Spring, si verificano eccezioni nelle tracce del server. I problemi provengono dalla versione 3.1.2.2 di Glassfish, che è sempre sotto controllo: Guardate qui e troverete lo stesso problema come il vostro di: https://java.net/jira/browse/GLASSFISH-18609 Glassfish getta NullPointerException all'avvio

Un altro indizio è l'indirizzo dove http://logging.apache.org/log4j/1.2/faq.html#unload squadra Apache log4j è parlando del problema I più carini:

  • Impostare org.apache.catalina.loader.WebappClassLoader.ENABLE_CLEAR_REFERENCES proprietà di sistema su false.
  • Applicare la patch dall'errore 40212 o eseguire l'aggiornamento a una versione a cui è stata applicata la patch.
  • Eseguire l'aggiornamento a log4j 1.2.16 o successivo per difendere meglio l'attacco del caricatore di classe o fornire un messaggio diagnostico migliore quando si verifica.

Penso che dovrete usare una versione più recente di Glashfish e di Log4j.

Spero che possa essere d'aiuto

Problemi correlati