1 2 Previous Next 24 Replies Latest reply on Nov 5, 2007 8:50 PM by juntao Go to original post
      • 15. Re: Quartz configuration in Seam 2.0B
        modoc

        Michael,

        thanks for your reply.

        Yes, I have done that, however I get this error:

        java.lang.ClassNotFoundException: No ClassLoaders found for: org.jboss.seam.async.AsynchronousInvocation


        My application is very simple, and I've only recently started building it. It's using a seam-gen created framework.

        My seam.quartz.properties file looks like this:


        #============================================================================
        # Configure Main Scheduler Properties
        #============================================================================
        
        org.quartz.scheduler.instanceName Sched1
        org.quartz.scheduler.instanceId AUTO
        org.quartz.scheduler.rmi.export false
        org.quartz.scheduler.rmi.proxy false
        
        #============================================================================
        # Configure ThreadPool
        #============================================================================
        
        org.quartz.threadPool.class org.quartz.simpl.SimpleThreadPool
        org.quartz.threadPool.threadCount 100
        
        #============================================================================
        # Configure JobStore
        #============================================================================
        
        org.quartz.jobStore.misfireThreshold 60000
        
        org.quartz.jobStore.class org.quartz.impl.jdbcjobstore.JobStoreTX
        org.quartz.jobStore.driverDelegateClass org.quartz.impl.jdbcjobstore.PostgreSQLDelegate
        org.quartz.jobStore.useProperties false
        org.quartz.jobStore.dataSource sitemonitorDS
        org.quartz.jobStore.tablePrefix qrtz_
        
        #============================================================================
        # Configure Datasources
        #============================================================================
        
        org.quartz.dataSource.sitemonitorDS.jndiURL java:/sitemonitorDatasource
        
        


        My scheduled method looks like this:


         @Asynchronous
         @Transactional
         public QuartzTriggerHandle scheduleSiteCheck(@Expiration
         Date pWhen, @IntervalDuration
         Long pInterval, Long pSiteId) {
         Site site = (Site) entityManager.createQuery("from Site where id = :id").setParameter("id", pSiteId)
         .getSingleResult();
         checkSite(site);
         return null;
         }
        
        


        The only errors I see are related to the error I mentioned above.

        Any ideas?

        Thanks!

        Devon

        • 16. Re: Quartz configuration in Seam 2.0B

          Devon,

          Hmm, the nasty classloader problem ... Are you running this inside JBoss AS? Are you using EAR or WAR deployment?

          Also, can you try the examples/quartz example and see if it works in your setup? Thanks.

          cheers
          Michael

          • 17. Re: Quartz configuration in Seam 2.0B
            modoc

            I'm using JBoss 4.2.2, and an ear deployment.

            The quartz example I see only uses a Ram store.

            When I had my application using the Ram store it worked fine. It's only when I changed over to persist the jobs that the error occurred.

            Thanks!

            • 18. Re: Quartz configuration in Seam 2.0B
              modoc

              To be more specific (I only copied the exception from the thread earlier, what I get is:

              org.quartz.JobPersistenceException: Couldn't recover jobs: Couldn't store trigger: No ClassLoaders found for: org.jboss.seam.async.AsynchronousInvocation

              • 19. Re: Quartz configuration in Seam 2.0B

                Devon,

                Are you trying to invoke the async method at app startup time or from a web action?

                cheers
                Michael

                • 20. Re: Quartz configuration in Seam 2.0B
                  modoc

                  A user initiated action. I want a user to create a site, and at the end of the create process I kick off the async monitor.

                  Thanks!

                  • 21. Re: Quartz configuration in Seam 2.0B

                    Devon,

                    A stupid question if you do not mind ... Do you have quartz.jar in your EAR classpath? JBoss AS has its own quartz.jar, which might be another version. Also, you can try to declare the quartz.jar as a java module in application.xml and see if it makes a difference ...

                    cheers
                    Michael

                    • 22. Re: Quartz configuration in Seam 2.0B
                      modoc

                      Michael,

                      I didn't add it in explicitly. It looks like the one in JBoss 4.2.2 is 1.5.2, and the current one with seam is 1.6.0. I will try adding it to my ear and defining it in application.xml.

                      I'll let you know if it works.

                      Thanks!

                      Devon

                      • 23. Re: Quartz configuration in Seam 2.0B
                        modoc

                        This is a good news/bad news situation. By adding the 1.6.0 quartz jar to my ear, and declaring it as a java module, the exception is gone. However it's replaced with this doozy:


                        16:05:37,947 ERROR [ExceptionFilter] exception root cause
                        javax.faces.el.EvaluationException: java.lang.reflect.UndeclaredThrowableException
                         at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:91)
                         at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:91)
                         at javax.faces.component.UICommand.broadcast(UICommand.java:383)
                         at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:447)
                         at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:752)
                         at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:97)
                         at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
                         at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
                         at com.icesoft.faces.webapp.http.core.ReceiveSendUpdates.renderCycle(ReceiveSendUpdates.java:57)
                         at com.icesoft.faces.webapp.http.core.ReceiveSendUpdates.service(ReceiveSendUpdates.java:45)
                         at com.icesoft.faces.webapp.http.core.IDVerifier.service(IDVerifier.java:25)
                         at com.icesoft.faces.webapp.http.core.ViewBoundServer.service(ViewBoundServer.java:52)
                         at com.icesoft.faces.webapp.http.common.standard.PathDispatcherServer$Matcher.serviceOnMatch(PathDispatcherServer.java:50)
                         at com.icesoft.faces.webapp.http.common.standard.PathDispatcherServer.service(PathDispatcherServer.java:19)
                         at com.icesoft.faces.webapp.http.servlet.ThreadBlockingAdaptingServlet.service(ThreadBlockingAdaptingServlet.java:19)
                         at com.icesoft.faces.webapp.http.servlet.EnvironmentAdaptingServlet.service(EnvironmentAdaptingServlet.java:29)
                         at com.icesoft.faces.webapp.http.servlet.MainSessionBoundServlet.service(MainSessionBoundServlet.java:109)
                         at com.icesoft.faces.webapp.http.servlet.SessionDispatcher.service(SessionDispatcher.java:35)
                         at com.icesoft.faces.webapp.http.servlet.PathDispatcher$Matcher.serviceOnMatch(PathDispatcher.java:52)
                         at com.icesoft.faces.webapp.http.servlet.PathDispatcher.service(PathDispatcher.java:29)
                         at com.icesoft.faces.webapp.http.servlet.MainServlet.service(MainServlet.java:98)
                         at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
                         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
                         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                         at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:654)
                         at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:445)
                         at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:343)
                         at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:292)
                         at com.icesoft.faces.webapp.xmlhttp.BlockingServlet.service(BlockingServlet.java:54)
                         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
                         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                         at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:83)
                         at org.jboss.seam.debug.hot.HotDeployFilter.doFilter(HotDeployFilter.java:68)
                         at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
                         at org.jboss.seam.web.LoggingFilter.doFilter(LoggingFilter.java:58)
                         at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
                         at org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:85)
                         at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
                         at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:64)
                         at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
                         at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:44)
                         at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
                         at org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:158)
                         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
                         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                         at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
                         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
                         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
                         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
                         at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
                         at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:432)
                         at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
                         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
                         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
                         at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
                         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
                         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)
                         at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
                         at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
                         at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446)
                         at java.lang.Thread.run(Thread.java:613)
                        Caused by: java.lang.reflect.UndeclaredThrowableException
                         at $Proxy129.rollback(Unknown Source)
                         at org.quartz.impl.jdbcjobstore.JobStoreSupport.rollbackConnection(JobStoreSupport.java:3503)
                         at org.quartz.impl.jdbcjobstore.JobStoreSupport.executeInNonManagedTXLock(JobStoreSupport.java:3669)
                         at org.quartz.impl.jdbcjobstore.JobStoreTX.executeInLock(JobStoreTX.java:93)
                         at org.quartz.impl.jdbcjobstore.JobStoreSupport.executeInLock(JobStoreSupport.java:3586)
                         at org.quartz.impl.jdbcjobstore.JobStoreSupport.storeJobAndTrigger(JobStoreSupport.java:971)
                         at org.quartz.core.QuartzScheduler.scheduleJob(QuartzScheduler.java:703)
                         at org.quartz.impl.StdScheduler.scheduleJob(StdScheduler.java:255)
                         at org.jboss.seam.async.QuartzDispatcher.scheduleWithQuartzService(QuartzDispatcher.java:233)
                         at org.jboss.seam.async.QuartzDispatcher.scheduleInvocation(QuartzDispatcher.java:124)
                         at org.jboss.seam.async.QuartzDispatcher.scheduleInvocation(QuartzDispatcher.java:44)
                         at org.jboss.seam.async.AsynchronousInterceptor.aroundInvoke(AsynchronousInterceptor.java:38)
                         at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
                         at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:106)
                         at org.jboss.seam.intercept.JavaBeanInterceptor.interceptInvocation(JavaBeanInterceptor.java:155)
                         at org.jboss.seam.intercept.JavaBeanInterceptor.invoke(JavaBeanInterceptor.java:91)
                         at com.digitalsanctuary.sitemonitor.SiteChecker_$$_javassist_0.scheduleSiteCheck(SiteChecker_$$_javassist_0.java)
                         at com.digitalsanctuary.sitemonitor.SiteFormHandler.createSite(SiteFormHandler.java:69)
                         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:585)
                         at org.jboss.seam.util.Reflections.invoke(Reflections.java:21)
                         at org.jboss.seam.intercept.RootInvocationContext.proceed(RootInvocationContext.java:31)
                         at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:56)
                         at org.jboss.seam.transaction.RollbackInterceptor.aroundInvoke(RollbackInterceptor.java:31)
                         at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
                         at org.jboss.seam.core.BijectionInterceptor.aroundInvoke(BijectionInterceptor.java:46)
                         at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
                         at org.jboss.seam.transaction.TransactionInterceptor$1.work(TransactionInterceptor.java:38)
                         at org.jboss.seam.util.Work.workInTransaction(Work.java:40)
                         at org.jboss.seam.transaction.TransactionInterceptor.aroundInvoke(TransactionInterceptor.java:32)
                         at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
                         at org.jboss.seam.core.MethodContextInterceptor.aroundInvoke(MethodContextInterceptor.java:42)
                         at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
                         at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:106)
                         at org.jboss.seam.intercept.JavaBeanInterceptor.interceptInvocation(JavaBeanInterceptor.java:155)
                         at org.jboss.seam.intercept.JavaBeanInterceptor.invoke(JavaBeanInterceptor.java:91)
                         at com.digitalsanctuary.sitemonitor.SiteFormHandler_$$_javassist_4.createSite(SiteFormHandler_$$_javassist_4.java)
                         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:585)
                         at org.jboss.el.util.ReflectionUtil.invokeMethod(ReflectionUtil.java:328)
                         at org.jboss.el.util.ReflectionUtil.invokeMethod(ReflectionUtil.java:341)
                         at org.jboss.el.parser.AstPropertySuffix.invoke(AstPropertySuffix.java:58)
                         at org.jboss.el.parser.AstValue.invoke(AstValue.java:96)
                         at org.jboss.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276)
                         at com.sun.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:68)
                         at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:77)
                         ... 61 more
                        Caused by: java.lang.reflect.InvocationTargetException
                         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:585)
                         at org.quartz.impl.jdbcjobstore.AttributeRestoringConnectionInvocationHandler.invoke(AttributeRestoringConnectionInvocationHandler.java:71)
                         ... 111 more
                        Caused by: java.sql.SQLException: You cannot rollback during a managed transaction!
                         at org.jboss.resource.adapter.jdbc.BaseWrapperManagedConnection.jdbcRollback(BaseWrapperManagedConnection.java:577)
                         at org.jboss.resource.adapter.jdbc.WrappedConnection.rollback(WrappedConnection.java:340)
                         ... 116 more
                        
                        
                        



                        Which seems awfully vague.

                        On the upside, all of a sudden, a job I'd tried to create a few days, all of a sudden started working.

                        Does that error mean anything to you?

                        Thanks!

                        Devon

                        • 24. Re: Quartz configuration in Seam 2.0B

                          Hmm, my experience is that rollback exception is always caused by some other exception down the stack. Can you double check that you are not getting other exceptions?

                          Also, would it help if you remove the @Transactional from the method?

                          1 2 Previous Next