-
15. Re: Quartz configuration in Seam 2.0B
modoc Nov 4, 2007 9:18 PM (in response to pierospinelli)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
juntao Nov 4, 2007 9:34 PM (in response to pierospinelli)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 Nov 4, 2007 9:37 PM (in response to pierospinelli)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 Nov 5, 2007 2:00 AM (in response to pierospinelli)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
juntao Nov 5, 2007 6:11 PM (in response to pierospinelli)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 Nov 5, 2007 6:14 PM (in response to pierospinelli)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
juntao Nov 5, 2007 6:28 PM (in response to pierospinelli)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 Nov 5, 2007 6:56 PM (in response to pierospinelli)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 Nov 5, 2007 7:18 PM (in response to pierospinelli)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
juntao Nov 5, 2007 8:50 PM (in response to pierospinelli)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?