Issue with using Quartz-1.5.1 in Weblogic8.1(SP3)


General J2EE: Issue with using Quartz-1.5.1 in Weblogic8.1(SP3)

  1. Issue with using Quartz-1.5.1 in Weblogic8.1(SP3) (2 messages)

    We recently deployed Quartz-1.5.1 in weblogic8.1(SP3) in our DEV/STG servers and it worked fine and it didnt work when it was moved to Production though the environment is same:

    The quartz Scheduler was initialized using a Generic Servlet and defined in the web.xml to load-on-startup. This worked fine in DEV/STG and it failed in PROD with the following error:
    <Nov 8, 2005 1:28:59 AM EST> <Error> <HTTP> <BEA-101216> <Servlet: "QuartzScheduler" failed to preload on startup in Web application: "LRW".
    javax.servlet.ServletException: org/quartz/SchedulerFactory
            at weblogic.servlet.internal.ServletStubImpl.createServlet()Ljavax.servlet.Servlet;(
            at weblogic.servlet.internal.ServletStubImpl.createInstances()V(
            at weblogic.servlet.internal.ServletStubImpl.prepareServlet(Lweblogic.servlet.internal.RequestCallback;)V(
            at weblogic.servlet.internal.WebAppServletContext.preloadServlet(Ljava.lang.String;)V(
            at weblogic.servlet.internal.WebAppServletContext.preloadServlets(Ljava.util.Vector;)V(
            at weblogic.servlet.internal.WebAppServletContext.preloadServlets()V(
            at weblogic.servlet.internal.WebAppServletContext.preloadResources()V(
            at weblogic.servlet.internal.HttpServer.preloadResources()V(
            at weblogic.servlet.internal.WebService.preloadResources()V(
            at weblogic.servlet.internal.ServletInitService.resume()V(
            at weblogic.t3.srvr.SubsystemManager.resume()V(
            at weblogic.t3.srvr.T3Srvr.resume()V(
            at weblogic.Server.main([Ljava.lang.String;)V(

    Since we didnt get a clue for what was going on, we implemented in a different way instead of a servlet thats loads during start-up. We initialized the schduler in the contextInitialized() method of a class which implements ServletContextListener. This time it worked fine in DEV/STG environment and it again failed in PROD with the following error

    <Nov 18, 2005 6:50:57 AM EST> <Error> <Deployer> <BEA-149231> <Unable to set the
     activation state to true for the application LRW.
    java.lang.NoClassDefFoundError: org/quartz/SchedulerFactory
            at java.lang.Class.newInstanceCached(I)Ljava.lang.Object;(Unknown Source
            at java.lang.Class.newInstance(I)Ljava.lang.Object;(Unknown Source)
            at weblogic.servlet.internal.WebAppServletContext.registerEventListener(
            at weblogic.servlet.internal.WebAppServletContext.activateFromDescriptor
            at weblogic.servlet.internal.WebAppServletContext.activate()V(WebAppServ
            at weblogic.servlet.internal.WebAppServletContext.setActive(Z)V(WebAppSe
            at weblogic.servlet.internal.WebAppModule.activate(Ljava.lang.ClassLoade
            at weblogic.j2ee.J2EEApplicationContainer.activateModule(Lweblogic.utils
            at weblogic.j2ee.J2EEApplicationContainer.activate([Lweblogic.j2ee.J2EEA
            at weblogic.j2ee.J2EEApplicationContainer.activate([
            at weblogic.j2ee.J2EEApplicationContainer.activate()V(J2EEApplicationCon
            at weblogic.t3.srvr.SubsystemManager.resume()V(
            at weblogic.t3.srvr.T3Srvr.resume()V(
            at weblogic.Server.main([Ljava.lang.String;)V(


    NOTE: The quartz-1.5.1.jar is available in the WEB-INF/lib folder along with all the depedent jars referred by quartz-1.5.1.jar.

    The JDK used in STG is j2sdk1.4.2_04 and in PROD j2sdk1.4.2_05.

    Will this cause the class-loader to behave differently. I am thinking of including the jar in the WL_CLASSPATH, but before that I want to get to the bottom of this.

    Any suggestions or help would be appreciated.

  2. i am using quartz 1.5.1 and weblogic(sp2) just fine...make sure u don't have a old quartz.jar around in both classpath(s).
  3. Thank you.

    I have also noted the following interesting observation:

    STEP: I Enabled the class loader debugging in Production and debug via the log.

    While viewing the log, I noted an interesting distinction between Staging & production. In both the environments the class-loader is looking for the jars under a extract folder (temp). I have given below the path where it looks for in Staging & Production. The Staging path has the Quartz. jar whereas the production path doesn’t have it. I believe this copy is kept by Weblogic to load only the jars which have changed or newly added in WEB-INF/lib.

    While it has added this correctly in STAGING, it hasn’t in PRODUCTION. I am not sure; copying manually the jar to this folder will work.

    Staging Path

    Production Path

    Any idea why?