2012-12-19 29 views
8

我想要獲得Spring和Quartz的基本示例。這裏是我下面的教程:http://www.mkyong.com/spring/spring-quartz-scheduler-example/Java:Spring/Quartz:基本教程代碼不起作用

我已經複製了一切儘可能我可以告訴,但我沒有看到任何東西在輸出窗口。

彈簧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> 

項目結構

enter image description here

編輯

是否需要手動啓動作業?我在該教程中看到,在其他人看來,他們通常在main()方法中開始石英工作。來自.NET背景似乎有點奇怪,因爲我只知道main方法在桌面應用程序;不是web應用程序。在ASP.NET中,我們有Global.asax,我們可以調用代碼在Web應用程序啓動時運行。在Java中有一些等價的東西嗎?或者,這甚至不是問題呢?我只是在這裏猜測。如果任何人有任何關於如何解決這個問題的想法,甚至只是給我一個工作樣本(甚至可以不同於上面的樣本;我不挑剔)...然後我會很感激它。我只需要一個基本的工作樣本,然後我可以根據我的要求進行修改。

EDIT 2

這裏的GlassFish服務器輸出,如果它可以幫助:

[注:刪除,原因是這個職位過長的體長。否則我將無法張貼下面編輯#3]

編輯3

一些進展,但仍然沒有工作。我已經加入log4j的文件通過@shuttsy的建議,這裏是從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. 

所以,我們有一個新的錯誤在這裏(這可能會或可能不會涉及到我原來的問題)約石英。看來這個錯誤與JDBC相關。我正在使用sqljdbc4驅動程序:http://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=11774

+0

你可以分享你的web.xml文件嗎?只是爲了確保加載'applicationContext.xml'文件 –

回答

1

終於讓我找到一個可行的解決方案!

基本上,我拿着那是在spring-quartz.xml,在我dispatcher-servlet.xml,而不是堅持它的一切......現在它正在運行... ...可愛

我還是想知道爲什麼其他方式沒」儘管如此。我猜,要麼:

  1. 行:<import resource="spring-quartz.xml"/>沒有工作..或:
  2. applicationContext.xml文件本身並沒有被加載..

我不是Java專家,所以我不知道那個答案。如果有人有想法,請在此發佈。無論如何,謝謝大家的努力。 :-)

0

我需要以某種方式手動啓動作業嗎?

不,你不需要手動啓動它們。

+0

謝謝你,拉爾夫。但是,這仍然無助於我的主要擔憂。就是說,這項工作根本沒有運行,我不知道爲什麼。如果還有其他東西需要我提供,請讓我知道...這是我第一次和Spring一起使用Quartz .. – Matt

+0

我知道,我只是希望你不要在錯誤的地方尋找問題。 – Ralph

+0

愚蠢的問題,但是,你確定這些bean被加載到你的Spring容器中嗎?檢查你的日誌文件。我親自使用Spring的計劃任務元素和cron表達式來完成簡單的計劃任務。 – shuttsy

2

您的glassfish輸出表明您的log4j配置不正確。你有一個log4j.properties文件嗎?嘗試添加一個與基本內容:

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 

春天將記錄加載和豆類創建的XML文件,但你沒有得到這個信息,由於log4j的問題。

注意:您可以達到同樣的效果有一個更簡單的Spring XML(這是一個任務,發射了每5秒):

<?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> 

試試這個,你讓你的輸出現在?

+0

謝謝;我喜歡簡單。無論如何,這仍然不起作用。我在哪裏可以找到你之前提到的日誌文件? – Matt

+0

我使用Spring Source Tool Suite作爲IDE,我的輸出生成到我的'控制檯'窗口。你看到有什麼表明春天的容器已經開始,它裏面有什麼豆子? – shuttsy

+0

謝謝,我剛纔看到你的編輯。我之前沒有注意到它,因爲你沒有在你的答案中加入** EDIT **這個詞。我現在添加了log4j屬性文件,它似乎已經解決了這個錯誤消息,但現在顯示了一個新的錯誤,這似乎與jdbc有關。請參閱上面我的帖子中的編輯#3。 – Matt

0

嘗試改變

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

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

不起作用,但謝謝你嘗試:) – Matt

1

是的,問題是applicationContext.xml文件未加載。

作爲Web應用程序,加載的默認配置文件是-servlet.xml文件。

通常所有與輪胎相關的bean都將在此配置文件中聲明。

如果要加載單獨的上下文文件,則需要在web.xml文件中指定它 例:

<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> 

在你的情況下,或者你可以移動到<import resource="spring-quartz.xml"/>dispatcher-servlet.xml可以添加對applicationContext.xml文件的支持

+0

+1,感謝您的信息。 :-) – Matt

0

在Spring配置之前,服務器跟蹤中會出現異常。問題來自誰在竊聽Glassfish的的3.1.2.2版本:看看這裏,你會發現同樣的問題,因爲你的: https://java.net/jira/browse/GLASSFISH-18609 的Glassfish拋出NullPointerException異常啓動時

另一條線索是ADRESS http://logging.apache.org/log4j/1.2/faq.html#unload其中的Apache log4j的團隊談論這個問題。他們採取:

  • 設置org.apache.catalina.loader.WebappClassLoader。ENABLE_CLEAR_REFERENCES系統屬性爲false。
  • 應用來自錯誤40212的修補程序或升級到應用了該修補程序的版本。
  • 升級到log4j 1.2.16或更高版本可以更好地抵禦類加載器攻擊或在發生時提供更好的診斷消息。

我認爲你將不得不使用更新版本的Glashfish和Log4j。

希望它能幫到