Grailsquartz 插件在 Tomcat 中部署时不起作用

2023-11-27

我有一个使用 Grails 开发的 Web 应用程序。我正在尝试实现一个后台进程,使用 Grails 的quartz1.0-RC9 插件每 5 分钟扫描一次数据库中的表。

在尝试编写实际逻辑之前,我正在学习如何使用该插件,因为我是石英新手。因此,我创建了一个作业,每 5 秒打印一次带有当前时间戳的消息“hai”。

class checkJob {
    static triggers = {
      simple name:'sampleQuartz', startDelay:10000, repeatInterval: 5000l, repeatCount: -1 // execute job once in 5 seconds
    }

    def execute() {
        println "hai!!!"+new Date()// execute job
    }
}

我的 QuartzConfig.groovy 是

quartz {
    autoStartup = true
    jdbcStore = false
    waitForJobsToCompleteOnShutdown = true
    exposeSchedulerInRepository = false

    props {
        scheduler.skipUpdateCheck = true
    }
}

environments {
    test {
        quartz {
            autoStartup = true
        }
    }
    production {
        quartz {
            autoStartup = true
        }
    }
}

使用命令运行时效果很好grails run-app。但是当使用命令创建战争时grails prod war当部署在 Tomcat 中时,没有任何效果。即使 index.html 页面也没有加载,而是给出了 Http-404 错误。

我已在 BuilConfig.groovy 中引用了此插件,如插件类别下的文档中所述。

compile ":quartz:1.0-RC9"

但仍然没有任何作用。

然后我创建了一个新的 Grails 项目,除了上面提到的quartz 代码之外什么都没有,并使用grails prod war。这与 Tomcat 配合得很好。

我在用着

Tomcat 6
Grails 2.0.1
石英 1.0-RC9

在现有的 Grails 应用程序中创建作业时我缺少什么?

请有人帮助我。

我在这个问题上做了一些基础工作。关于创建我的 grails 应用程序“Timeprocess”的战争grails dev-war并在 Tomcat6 下部署,我在 localhost.txt 文件中得到以下内容

Jul 29, 2013 3:35:27 PM org.apache.catalina.core.ApplicationContext log
INFO: Initializing Spring root WebApplicationContext
Jul 29, 2013 3:35:32 PM org.apache.catalina.core.StandardContext listenerStart
SEVERE: Exception sending context initialized event to listener instance of class org.codehaus.groovy.grails.web.context.GrailsContextLoaderListener
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'pluginManager' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Invocation of init method failed; nested exception is java.lang.RuntimeException: Unable to locate constructor with Class parameter for class grails.plugins.quartz.DefaultGrailsJobClass
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1455)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:567)
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:913)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:464)
    at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:384)
    at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:283)
    at org.codehaus.groovy.grails.web.context.GrailsContextLoader.initWebApplicationContext(GrailsContextLoader.java:66)
    at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:111)
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4135)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4630)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:546)
    at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:905)
    at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:740)
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:500)
    at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1277)
    at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:321)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:785)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:445)
    at org.apache.catalina.core.StandardService.start(StandardService.java:519)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:581)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
Caused by: java.lang.RuntimeException: Unable to locate constructor with Class parameter for class grails.plugins.quartz.DefaultGrailsJobClass
    at org.codehaus.groovy.grails.commons.ArtefactHandlerAdapter.newArtefactClass(ArtefactHandlerAdapter.java:113)
    at org.codehaus.groovy.grails.commons.DefaultGrailsApplication.addArtefact(DefaultGrailsApplication.java:894)
    at org.codehaus.groovy.grails.commons.DefaultGrailsApplication.addArtefact(DefaultGrailsApplication.java:615)
    at org.codehaus.groovy.grails.commons.DefaultGrailsApplication.configureLoadedClasses(DefaultGrailsApplication.java:326)
    at org.codehaus.groovy.grails.commons.DefaultGrailsApplication.initialise(DefaultGrailsApplication.java:825)
    at org.codehaus.groovy.grails.plugins.GrailsPluginManagerFactoryBean.afterPropertiesSet(GrailsPluginManagerFactoryBean.java:110)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1514)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1452)
    ... 37 more
Caused by: java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at org.codehaus.groovy.grails.commons.ArtefactHandlerAdapter.newArtefactClass(ArtefactHandlerAdapter.java:104)
    ... 44 more
Caused by: java.lang.IncompatibleClassChangeError: Implementing class
    at grails.plugins.quartz.config.TriggersConfigBuilder.createTrigger(TriggersConfigBuilder.groovy:74)
    at grails.plugins.quartz.config.TriggersConfigBuilder.createNode(TriggersConfigBuilder.groovy:215)
    at grails.plugins.quartz.config.TriggersConfigBuilder.createNode(TriggersConfigBuilder.groovy:208)
    at Timeprocess.ScheduleScanJob$__clinit__closure1.doCall(ScheduleScanJob.groovy:7)
    at grails.plugins.quartz.config.TriggersConfigBuilder.build(TriggersConfigBuilder.groovy:52)
    at grails.plugins.quartz.DefaultGrailsJobClass.evaluateTriggers(DefaultGrailsJobClass.java:58)
    at grails.plugins.quartz.DefaultGrailsJobClass.<init>(DefaultGrailsJobClass.java:48)
Jul 29, 2013 3:35:34 PM org.apache.catalina.core.ApplicationContext log
INFO: ContextListener: contextInitialized()
Jul 29, 2013 3:35:34 PM org.apache.catalina.core.ApplicationContext log
INFO: SessionListener: contextInitialized()
Jul 29, 2013 3:36:31 PM org.apache.catalina.core.ApplicationContext log
INFO: SessionListener: contextDestroyed()
Jul 29, 2013 3:36:31 PM org.apache.catalina.core.ApplicationContext log
INFO: ContextListener: contextDestroyed()

谁能帮我指出这里有什么问题吗?


我建议做一个:

grails clean

并删除 .slcache 文件夹,您可以在下面找到该文件夹

~/.grails/.slcache

regards

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Grailsquartz 插件在 Tomcat 中部署时不起作用 的相关文章

  • 从控制器传递 gsp 参数

    我如何通过不是域类实例的控制器将参数传递到groovy服务器页面 您将参数放入返回给 GSP 的模型对象映射中 例如 def index def hobbies basketball photography render view inde
  • Grails 2.3 IntegrationSpec 不能为事务性 false

    我最近升级到 Grails 2 3 并尝试将所有旧测试迁移到 spock 集成测试 但它在清理时失败了 因为我的测试是非事务性的 Grails 文档说测试可以是非事务性的 但我们需要手动处理它 但在这里似乎不太正确 因为我在扩展 Integ
  • Grails - 错误分叉 Grails VM 因错误退出

    首先 我想说 我是 Grails 的初学者 在尝试遵循一些示例时 我不断收到无法解决的错误 如果问题很愚蠢 那么很抱歉 我通过命令行创建了一个虚拟应用程序 并尝试以相同的方式运行它 run app 但出现以下错误 运行 Grails 应用程
  • grails postgres 消息:错误:列 this_.id 不存在

    grails 和 postgres 用于用户域 Message ERROR column this id does not exist 明白问题了 对于用户域 我将 postgres 表设置为 用户 因此 默认情况下 当它尝试查询用户表时
  • 在 Grails 下如何防止异常导致事务回滚?

    我的 Grails 服务遇到一个问题 即与事务无关的吞没异常会导致事务回滚 即使它与域对象的持久性无关 在我的服务中 我有一些类似的东西 updateSomething domainObj def oldFilename domainObj
  • 如何重写 GORM/Grails 的 addTo* 和 RemoveFrom* 方法?

    我尝试重写 Grails GORM 提供的动态方法 addTo 但它似乎不起作用 这是代码 class Match static hasMany players Player matchPlayers MatchPlayer void ad
  • Jboss 7战争部署失败

    Jboss 7 war 部署失败 我在日志中收到以下错误消息 ERROR org jboss as server deployment scanner DeploymentScanner threads 1 JBAS015052 Did n
  • grails 上的同步块在 Windows 上有效,但在 Linux 上无效

    我有一个 grails 应用程序 它依赖于服务中的同步块 当我在 Windows 上运行它时 同步按预期工作 但当我在 ams linux 上运行时 会出现 StaleObjectStateException 该问题在以下示例中重现 cla
  • Grails:如何查询多对多映射中的对象?

    您好 我有以下域类 class Student int age static hasMany courses Course class Course String name static hasMany students Student 我
  • 如何在视图中调用 Grails 服务?

    简单的问题 我有一个服务类 比方说helpersService 和一个方法def constructURI params 如何从模板视图调用此方法 我尝试了以下代码但没有成功 img src 但我得到以下结果 No signature of
  • 如何在 Grails Geb/Spock 测试用例中获取 sessionFactory?

    我想我需要在 GebSpec 测试中刷新 hibernate 会话 所以我想获取 sessionFactory 看起来应该被注入 但是当我做这样的事情时 class MySpec extends GebSpec def sessionFac
  • 失败时石英重试

    假设我有一个这样配置的触发器
  • Groovy 元编程 - 将静态方法添加到 Object.metaClass

    我遇到了无法解决的 Groovy 元编程问题 将静态方法 foo 添加到类 FooBar 时 FooBar foo 按预期工作 FooBar metaClass static foo println hello FooBar foo 但是
  • 如何在 Quartz 调度程序中每 25 秒运行一次?

    我正在使用 Java 的 Quartz Scheduling API 你能帮我使用 cron 表达式每 25 秒运行一次吗 这只是一个延迟 它不必总是从第 0 秒开始 例如 序列如下 0 00 0 25 0 50 1 15 1 40 2 0
  • UrlMapping 和文件扩展名

    我有以下 url 映射 name a a file controller attachment action get 我想像这样使用它
  • 模拟 Spock 中的超类

    如何对 Spock 中具有超类的类进行单元测试 该超类调用来自其超类的方法调用 或者如何模拟 Spock 中的超类 Ex class Bar def method1 parm1 Method actions class Foo extend
  • Grails、Spring Security Core - 从应用程序中删除 /login/auth

    我在 Grails 应用程序中安装了 Spring Security Core 并使用s2 quickstart 我想要 来处理登录和注销操作 对我来说 这意味着未登录的用户只能访问根页面 而不能访问其他页面 实际上 对于没有角色 ROLE
  • 为什么 GORM 不保存我的对象?

    如果我在 Grails 控制台中执行此代码 def p new Post title T p save flush true or p save Post count GORM 没有抛出任何异常 但数据没有保存在我的数据库中 我究竟做错了什
  • Grails GORM 和枚举

    我在 Grails 中使用枚举时遇到问题 我尝试在 grails 域对象中使用枚举 code package it xxx tools kanban import java util Date class Task String name
  • 从 Grails 控制器渲染视频内容

    毫无疑问又是一个愚蠢的新手问题 我在 Grails 控制器中有一个字节数组 其中包含视频文件 确切地说是 mp4 文件 的内容 我熟悉如何从 grails 控制器渲染 JSON XML 和其他基本类型 但我找不到任何显示如何输出视频的示例

随机推荐

  • 如何解读分析结果?

    我使用 NetBeans 和 VisualVM 运行内存分析器并收到结果 但不知道如何分析其结果 我研究了这个article但它没有教导或提供如何解释结果的线索 我也发现了这个article关于解释 Netbeans 4 上的结果 但我正在
  • 自调用函数内的递归函数上的 setTimeout()

    我想将我的代码作为自调用匿名函数分发 正如我看到的许多人所做的那样 另外 在我的代码中 我必须监视另一个库的加载 这样我就可以在它可用时使用它 function window document undefined staffHappens
  • Google Drive Sdk - iOS 应用程序中的音频和视频流

    嗨 Google 云端硬盘工作人员 我已经尝试过从 Google 云端硬盘流式传输视频文件 无需下载 但我收到登录提醒 我已经彻底检查了 Dr Edit 示例应用程序 但没有找到任何解决方案 我尝试过downloadUrl embedLin
  • Android应用程序盗版预防[关闭]

    Closed 这个问题是无关 目前不接受答案 看看 stackoverflow 上的一些帖子 截至撰写本文时 似乎确实没有办法有效防止应用程序盗版 这里真的有人因应用程序盗版而蒙受损失吗 您当前针对应用程序破解者的解决方案 免费或非免费 是
  • NSString nslog 显示“\n”换行符

    我想记录一个 NSString 但当我记录它时 它不显示新行字符 n 我怎样才能做到这一点 谢谢 您可以先处理该字符串并替换所有出现的 n with n NSString newString originalString stringByR
  • 图像中的 r 轴标签

    我需要按呼叫中心的空间位置绘制指标图表 我用 R 写了一个小例子 tt lt data frame a1 c 0 4 5 5 7 a2 c 5 6 7 8 a3 c 8 7 9 8 row names tt lt paste L 1 4 s
  • 如何使用 SharedPreferences [重复]

    这个问题在这里已经有答案了 我是 Android 开发新手 使用一本名为 Sams Teach Yourself Android Application Development in 24 hours 的书 到目前为止 但在尝试使用 Sha
  • 在 Visual Studio 2010 中,如何搜索不在单行注释内的文本?

    在 Visual Studio 2010 中 如何搜索不在单行注释内的文本 例如 如何在以下位置找到 bas foo bar bas 但不在 foo bar bas 请注意 它应该找到以下行 foo bar bas 编辑 它不应该找到该行
  • 相同的 Ajax 调用了两次..JQuery

    我在 JQuery 中有一个问题 我正在使用 ajax 在我的代码中 Function 1 将字段名和序列号发送到 ctrller 后者通过以下方式获取数据 POST name and POST sequenceno 并使用未给定的序列更新
  • Math.Round 返回奇数向上舍入,但偶数向下舍入

    我正在尝试使用数学循环找到一个浮点数 我发现了以下内容 0 5 gt 0 1 5 gt 2 2 5 gt 2 3 5 gt 4 等等 我相信这是由于浮点错误造成的 但不太确定是如何造成的 我怎样才能解决这个问题 以便偶数正确舍入 From
  • 避免 Android Market 对可选使用位置进行过滤

    在我的应用程序中 我尝试使用位置信息 如果可用 因此 我的清单中有这些权限 e g
  • 对列中的每个单元格应用函数并将结果添加到新列

    我有一个 data table 如下所示 我想要的是将一个函数应用于 C 列中的每个元素 该函数将接受一个向量 因为 Col C 包含向量元素 并返回另一个向量 应将所得向量添加到新列中 A B C 1 16 151 c 2579 2659
  • Yii框架登录后重定向页面

    我是 Yii 框架的新手 在 Yii 中 当您默认登录时 它会重定向到索引页面 我希望当我登录 Yii 时 页面将重定向到另一个页面而不是索引页面 那么任何人都可以帮助我吗 任何帮助或建议将非常感激 edit 当我使用用户模块时 重定向将如
  • 显示与线连接的树视图项目?

    有没有办法让树视图在展 开项目时显示连接项目的线 Thanks 您必须替换 TreeViewItem 控件模板才能实现这一点 看着MSDN 上的这个线程应该有您需要的所有信息
  • XSLT:更改节点内部文本

    我需要转换以下 xml 文档 a b b a
  • pandas散点矩阵显示相关系数

    我试图找到一种方法来显示 pandas 散点矩阵的下三或上三中的相关系数 有人能指出我正确的方向吗 谢谢 一个最小的工作示例 import matplotlib pyplot as plt import pandas as pd impor
  • Foundation 5 顶栏在 Rails 4 中无法一致工作

    我在 Rails 4 应用程序中使用 Foundation 5 当我发送请求时 顶栏菜单工作正常 我可以悬停项目和嵌套项目没有问题 然后 我单击其中一个项目 该项目具有与其关联的 link to 方法 有时它会给出正确的结果 我的菜单仍然可
  • 向量值多元函数中的插值

    在Python中 我试图构建一个在多维 5 参数空间中插入向量值数据的例程 即我有一个函数 它接受多个输入变量并返回多个输出变量 目前 向量的每个元素都有一个调用 数据位于列式文件中 因此我使用以下命令检索它 import numpy x
  • 在 CollectionView 上的滚动需求上加载更多数据

    我正在 collectionView 上实现一项功能 其中用户滚动底部的 collectionView 20 个项目 并从服务器请求另一组数据 另外 20 个项目 我已经实施了以下两种方法 但我想知道哪种方法更好 或者还有其他我不知道的更好
  • Grailsquartz 插件在 Tomcat 中部署时不起作用

    我有一个使用 Grails 开发的 Web 应用程序 我正在尝试实现一个后台进程 使用 Grails 的quartz1 0 RC9 插件每 5 分钟扫描一次数据库中的表 在尝试编写实际逻辑之前 我正在学习如何使用该插件 因为我是石英新手 因