下载、设置和运行Quartz(GUI)图形界面程序----Quartz Web

一、获取Quartz Web程序(Quartz GUI)。
早期的 Quartz 框架开发者意识到一个 GUI 对于某类用户群体是必需的。几年前,一个 Web 应用被创立,它可用于管理 Quartz 框架。虽说是历经了几年有相当投入的开发,但不得不说的,总是时断时续的。近来出现有更多的要求对这个应用的更新与支持,因而又重新吸引了新的开发者自愿的工作并使之保持不断更新。这个应用就是知名的 Quartz Web 程序。Quartz Web 程序是作为 OpenSymphony 上 Quartz 源程序库的一部分。它曾经是放在 SourceForge 上的,但最近已迁移到新家了(译者注:在 SourceForge 仍可下载到)。旧的站点是 http://sourceforge.net/projects/quartz;新的站点(包括 Quartz Web 程序) 可在 http://www.quartz-scheduler.org/community/repository.html 上找到。

当前,还没有 Web 程序的二进制版,而且标准的 Quartz 下载中也不包括 Web 程序,所以你需要进入quartz的SVN(http://svn.terracotta.org/svn/quartz)源代码树下的webapp目录即为Quartz Web 的源码目录,下载到 Quartz 源代码树并使用 quartz/webapp目录下的 Ant 或Maven构建文件来构建这个 Web 程序。

最新版的quartz web采用了struts2+freemarker+spring2.5的架构,还用到了开源的sitemesh和dwr,并在web.xml中设置用org.quartz.ui.web.init.DefinitionInitializer启动quartz,具体设置如下:
<servlet>
   <servlet-name>DefinitionInitializer</servlet-name>
   <servlet-class>
    org.quartz.ui.web.init.DefinitionInitializer
   </servlet-class>
   <init-param>
    <param-name>definition-file</param-name>
    <param-value>(PATH_TO_DEFINITIONS_FILE)</param-value>
    <!-- 
     if (PATH_TO_DEFINITIONS_FILE) is left as such, definitions are loaded from 
     /WEB-INF/classes/JobDefinitions.xml 
    -->
   </init-param>
   <load-on-startup>1</load-on-startup>
</servlet>

二、修改设置。
运行quartz/webapp 目录下的 Ant 或Maven构建文件来构建这个 Web 程序,会得到一各为quartz.war的包,但在打包前我们应该修改其默认设置。默认下Quartz Web是被设置内存(非持久化) 存储,如果要改为数据库存诸则须修改quartz的设置文件quartz.properties,为其配置jdbc(需用到dbcp连接池,所以另需加入commons-dbcp和commons-pool包)数据源或JNDI数据。
下面为jobStore各种设置:

1、内存存储:
org.quartz.jobStore.misfireThreshold = 60000
org.quartz.jobStore.class = org.quartz.simpl.RAMJobStore

2、JDBC数据源(本例为oracle数据库,不同的数据库只要修改org.quartz.jobStore.driverDelegateClass的值为对应的数据库即可):
org.quartz.jobStore.misfireThreshold = 60000
org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX
org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.oracle.OracleDelegate
#org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.DB2v7Delegate
org.quartz.jobStore.dataSource = myDS
org.quartz.jobStore.tablePrefix = QRTZ_
org.quartz.jobStore.isClustered = false
org.quartz.dataSource.myDS.driver = oracle.jdbc.driver.OracleDriver
org.quartz.dataSource.myDS.URL = jdbc:oracle:thin:@polarbear:1521:dev
org.quartz.dataSource.myDS.user = quartz
org.quartz.dataSource.myDS.password = quartz
org.quartz.dataSource.myDS.maxConnections = 5

3、JNDI数据源(本例为oracle数据库,不同的数据库只要修改org.quartz.jobStore.driverDelegateClass的值为对应的数据库即可):
org.quartz.jobStore.misfireThreshold = 60000
org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX
org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.oracle.OracleDelegate
#org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.DB2v7Delegate
org.quartz.jobStore.dataSource = myDS
org.quartz.jobStore.tablePrefix = QRTZ_
org.quartz.jobStore.isClustered = false
org.quartz.dataSource.myDS.jndiURL = java:comp/env/jdbc/JNDITEMP

Quartz Web程序通过插件的形式设置日志记录和自动加载job配置文件,具体如下:
1、日志记录插件:
org.quartz.plugin.triggHistory.class = org.quartz.plugins.history.LoggingJobHistoryPlugin

2、用插件org.quartz.plugins.xml.JobInitializationPlugin加载job配置文件,org.quartz.plugin.jobInitializer.fileNames指定了位于classpath下的job配置文件的名称,这里配置了两个插件,分别指定了三个job配置文件jobs.xml、jobs2.xml,jobs3.xml:

org.quartz.plugin.jobInitializer.class = org.quartz.plugins.xml.JobInitializationPlugin
# init plugin will load jobs.xml as a classpath resource i.e. /jobs.xml if not found on file system
org.quartz.plugin.jobInitializer.fileNames=jobs.xml
org.quartz.plugin.jobInitializer.overWriteExistingJobs = false
org.quartz.plugin.jobInitializer.failOnFileNotFound = false
org.quartz.plugin.jobInitializer.scanInterval = 30 
# org.quartz.plugin.jobInitializer.wrapInUserTransaction = true

org.quartz.plugin.jobInitializerMultiple.class = org.quartz.plugins.xml.JobInitializationPlugin
# init plugin will load jobs.xml as a classpath resource i.e. /jobs.xml and jobs2.xml if not found on file system
org.quartz.plugin.jobInitializerMultiple.fileNames=jobs2.xml,jobs3.xml
org.quartz.plugin.jobInitializerMultiple.overWriteExistingJobs = false
org.quartz.plugin.jobInitializerMultiple.failOnFileNotFound = false
# org.quartz.plugin.jobInitializerMultiple.wrapInUserTransaction = true

Quartz Web程序通过JobDefinitions.xml来默认加载常用的job的定义,默认定义了三种quartz内置的job,分别为:
org.quartz.jobs.NativeJob
org.quartz.jobs.NoOpJob
org.quartz.jobs.ee.mail

下面是Quartz内置的的各种job:

 
Job 类 Job 用法
org.quartz.jobs.FileScanJob 检查某个指定文件是否变化,并在文
件被改变时通知到相应监听器的 Job
org.quartz.jobs.FileScanListener 在文件被修改后通知 FileScanJob 的监听器
org.quartz.jobs.NativeJob 用来执行本地程序(如 windows 下 .exe 文件) 的 Job
org.quartz.jobs.NoOpJob 什么也不做,但用来测试监听器不是很有用的。
一些用户甚至仅仅用它来导致一个监听器的运行
org.quartz.jobs.ee.mail.SendMailJob 使用 JavaMail API 发送 e-mail 的 Job
org.quartz.jobs.ee.jmx.JMXInvokerJob 调用 JMX bean 上的方法的 Job
org.quartz.jobs.ee.ejb.EJBInvokerJob 用来调用 EJB 上方法的 Job

三、运行。将打包好的war包部署到服务上,访问http://localhost:8080/quartz,然后用默认用户名:quartz 密码:quartz 登陆便可激忿进入系统。用户名和密码可在applicationContext.xml中修改,具体如下:
<bean id="authenticator" class="org.quartz.ui.web.security.SimpleAuthenticator">
   <property name="username">
    <value>quartz</value>
   </property>
   <property name="password">
    <value>quartz</value>
   </property>
</bean>

Quartz Web 程序的截屏

1、Quartz Web 程序主界面的左上方展示了它所拥有的特征列表


2、Scheduler 控制界面,允许你启动、停止和暂停 Scheduler

四、与现有Web程序结合(我已结合过,可行)。
我们也可将Quartz web加入到现有的web程序中,具体做法为:
1、将Quartz web的所有jar包和设置文件和页面文件copy至现有Web工程中。
2、合并各设置文件(主要是:web.xml、struts.xml和applicationContext.xml等)
3、修改Quartz web各程序的访问的命名空间。
4、Quartz web并不完善,有好多明显的错误,好多页面有错误需要修改后才能通过gui成功配置各调度

Quartz(GUI)图形界面程序----Quartz Web的更多相关文章

  1. 用Nim语言开发windows GUI图形界面程序

    前言 本文得到了“樂師”的大力支持, 我们一起调试程序到深夜,要是没有他的帮忙, 我不知道要多久才能迈过这道坎, 另外“归心”还有其他人也提供了帮助, 他们都来自于QQ群:“Nim开发集中营”4693 ...

  2. CentOS 7安装Gnome GUI 图形界面

    当你安装centos服务器版本的时候,系统默认是不会安装 CentOS 的图形界面程序的,比如:gnome或者kde, 那么如果你想在图形界面下工作的话,可以手动来安装CentOS Gnome GUI ...

  3. 在桌面Linux环境下开发图形界面程序的方案对比

    在Linux下开发GUI程序的方法有很多,比如Gnome桌面使用GTK+作为默认的图形界面库,KDE桌面使用Qt作为默认的图形界面库,wxWidgets则是另一个使用广泛的图形库,此外使用Java中的 ...

  4. centOS7下安装GUI图形界面

    1.如何在centOS7下安装GUI图形界面 当你安装centOS7服务器版本的时候,系统默认是不会安装GUI的图形界面程序,这个需要手动安装CentOS7 Gnome GUI包. 2.在系统下使用命 ...

  5. [转载]CentOS 7安装Gnome GUI 图形界面

    原文链接:http://www.centoscn.com/image-text/config/2015/0528/5552.html 当你安装centos服务器版本的时候,系统默认是不会安装 Cent ...

  6. Python编写的桌面图形界面程序实现更新检测和下载安装

    在Python中我们有很多种方案来编写桌面图形用户界面程序,譬如内置的 Tkinter .强大的 PyQt5 和 PySide2 ,还有 wxPython .借助这些或内置或第三方的模块,我们可以轻松 ...

  7. linux启动后自动登录并运行自定义图形界面程序

    在<Ubuntu CTRL+ALT+F1~F6 进入命令模式后不支持中文显示的解决办法>一文中提到linux启动在以后运行一个独占显示器的图形程序的两种办法. 1.不启动xserver,使 ...

  8. 在ubuntu上使用wxWidgets成功开发一个图形界面程序

    编译wxWidgets 下载最新版的源码,wxWidgets-3.0.2.wxWidgets在liunx是通过wxGTK实现的.wxGTK和wxWidgets的源码打包在一起.wxGTK依赖GTK+, ...

  9. CentOS7安装GUI图形界面

    本文转自centOS7下安装GUI图形界面,侵权删. 1. 在命令行下 输入下面的命令来安装Gnome包. # yum groupinstall "GNOME Desktop" & ...

随机推荐

  1. 关于SVN配置文件的一个小例子

    1   背景假设 厦门央瞬公司是一家电子元器件设备供应商,其中有个ARM部门,专门负责ARM芯片的方案设计.销售,并在北京.上海各设立了一个办事处.对于工作日志,原先采用邮件方式发给经理,但是这种方式 ...

  2. 逆向project第004篇:令计算器程序显示汉字(下)

    一.前言 钩子技术是一项很有有用价值的技术.在Windows下HOOK技术的方法比較多,使用比較灵活,常见的应用层的HOOK方法有Inline HOOK(详见<反病毒攻防研究第012篇:利用In ...

  3. HGE项目升级时遇到的问题及解决方式记录

    主要是记录在把2003版本的hge项目升级为2013时遇到的问题及解决方案. Q1: 错误 3error LNK2019: 无法解析的外部符号 "public: __thiscall hge ...

  4. Eclipse关闭检查

    有没有发现每次操作Eclipse过后,都会有build Workspace的操作一直在后台执行,JS校验一直validate,非常卡非常受不了有木有? 有木有?以下是我个人成功的步骤,曾经试过非常多次 ...

  5. DESCryptoServiceProvider加密解密的简单使用例子

    DES.cs using System; using System.Collections.Generic; using System.Linq; using System.Text; using S ...

  6. docker 中国站 www.dockerpool.com 报价图片下载

    为了方便一些基本的下载docker 镜像,我建立了一个docker该站 http://www.dockerpool.com 对于Docker用户提供一站式Docker镜像服务: 稳定可靠的官方镜像下载 ...

  7. hadoop 提高hdfs删文件效率----hadoop删除文件流程解析

    前言 这段时间在用hdfs,由于要处理的文件比较多,要及时产出旧文件,但是发现hdfs的blocks数一直在上涨,经分析是hdfs写入的速度较快,而block回收较慢,所以分心了一下hadoop删文件 ...

  8. Windows+Atlassian-Jira-6.0.4+MySql5.0安装破解汉化

     Windows+Atlassian-Jira-6.0.4+MySql5.0安装破解汉化 一:整理的安装程序 例如以下图: 文件太大.上传不到csdn上.有须要的联系. 新增的百度云盘下载:链接: ...

  9. openstack dhcp调试

    openstack的dhcpserver默认值dnsmasq软件实施,经ps -ef | grep dnsmasq 查看.当虚拟机启动过程启动dhcp求,日志可以是在主机系统日志: May 23 22 ...

  10. OS调度算法常用摘要

    一.常见的批处理作业调度 1.先来先服务调度算法(FCFS):就是依照各个作业进入系统的自然次序来调度作业.这样的调度算法的长处是实现简单,公平. 其缺点是没有考虑到系统中各种资源的综合使用情况,往往 ...