我有时会在Quartz Scheduler论坛中为用户提供帮助。 有时,有人会问他/她如何在Web应用程序中设置Quartz。 实际上,这是一件相当简单的事情。 该库已经带有一个ServletContextListener ,您可以使用它启动调度程序。 我将在这里向您展示一个简单的webapp示例。

首先创建一个Maven pom.xml文件。

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"><modelVersion>4.0.0</modelVersion><groupId>quartz-web-demo</groupId><artifactId>quartz-web-demo</artifactId><packaging>war</packaging><version>1.0-SANPSHOT</version><dependencies><dependency><groupId>org.quartz-scheduler</groupId><artifactId>quartz</artifactId><version>2.2.0</version></dependency></dependencies></project>

然后,您需要创建一个src/main/webapp/META-INF/web.xml文件。

<?xml version="1.0" encoding="UTF-8"?><web-app version="2.5"xmlns="http://java.sun.com/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"><context-param><param-name>quartz:config-file</param-name><param-value>quartz.properties</param-value></context-param><context-param><param-name>quartz:shutdown-on-unload</param-name><param-value>true</param-value></context-param><context-param><param-name>quartz:wait-on-shutdown</param-name><param-value>true</param-value></context-param><context-param><param-name>quartz:start-on-load</param-name><param-value>true</param-value></context-param><listener><listener-class>org.quartz.ee.servlet.QuartzInitializerListener</listener-class></listener></web-app>

最后,您需要Scheduler的src/main/resources/quartz.properties配置文件。

# Main Quartz configuration
org.quartz.scheduler.skipUpdateCheck = true
org.quartz.scheduler.instanceName = MyQuartzScheduler
org.quartz.scheduler.jobFactory.class = org.quartz.simpl.SimpleJobFactory
org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount = 5

您可以使用Quartz配置许多其他功能 ,但是上面的内容应该像在内存调度程序中一样使您入门。

现在,您应该可以编译并运行它了。

bash> mvn compile
bash> mvn org.apache.tomcat.maven:tomcat7-maven-plugin:2.1:run -Dmaven.tomcat.port=8081

如何为Quartz Scheduler配置日志记录

另一个常见问题是他们如何设置日志记录并查看DEBUG级别的消息。 Quartz Scheduler使用SLF4J,因此您可以选择许多记录器选项 。 下面,我将向您展示如何设置Log4j。

首先,将其添加到您的pom.xml

<dependency><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId><version>1.7.5</version></dependency>

然后添加src/main/resources/log4j.properties文件以将消息显示到STDOUT上。

log4j.rootLogger=INFO, stdout
log4j.logger.org.quartz=DEBUG
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n

在命令行上重新启动Web应用程序,现在您应该看到所有来自Quartz库的DEBUG级别的日志记录消息。

在一切正常运行的情况下,您的下一个问题可能是询问您如何从Web应用程序访问调度程序? 好了,当调度程序由Servlet上下文侦听器创建时,它使用org.quartz.impl.StdSchedulerFactory.KEY键存储在Web应用程序的ServletContext空间中。 因此,您可以像下面这样检索它并在您自己的Servlet中使用它:

public class YourServlet extends HttpServlet {public init(ServletConfig cfg) {String key = "org.quartz.impl.StdSchedulerFactory.KEY";ServletContext servletContext = cfg.getServletContext();StdSchedulerFactory factory = (StdSchedulerFactory) servletContext.getAttribute(key);Scheduler quartzScheduler = factory.getScheduler("MyQuartzScheduler");// TODO use quartzScheduler here.}
}

现在,您正在构建下一个调度应用程序!

玩得开心!

参考: 如何使用Quartz Scheduler创建Web应用程序以及如何在A Programmer's Journal博客上从我们的JCG合作伙伴 Zemian Deng进行日志记录 。

翻译自: https://www.javacodegeeks.com/2013/09/how-to-create-web-app-with-quartz-scheduler-and-logging.html

如何使用Quartz Scheduler和日志记录创建Web应用程序相关推荐

  1. vs.Net2003无法打开或创建Web应用程序若干解决办法

    昨天到今天搞了一整天,把人都要差点搞崩了! ,以后再也不能乱关机了,因为这次的大意,几乎所有的Net安装,调试问题都被我碰到了,还好,我一个个把他记录下来了,同时,在CSDN找了一些相关的解决方法,不 ...

  2. c#创建web应用程序_创建Web应用程序图标集的6个步骤

    c#创建web应用程序 I am not great at creating logos or icons, mainly because of the lack of practice. So wh ...

  3. 在 ASP.NET 2.0 中创建 Web 应用程序主题(一)

    在ASP.net2.0中创建Web应用程序主题 来源:MSDN 适用范围: MicrosoftASP.NET2.0 MicrosoftVisualStudio2005 摘要:StephenWalthe ...

  4. 使用Maven创建Web应用程序项目

    在本教程中,我们将演示如何使用 Maven 创建一个 Java Web 项目(Spring MVC). 用到的技术/工具: Maven 3.3.3 Eclipse 4.3 JDK 8 Spring 4 ...

  5. maven项目 jetty_如何使用Java,Maven,Jetty创建Web应用程序项目

    maven项目 jetty 在本文中,我们使用Maven Archetype插件创建一个简单的Web应用程序. 我们将在一个名为Jetty的Servlet容器中运行此Web应用程序,添加一些依赖项,编 ...

  6. gradle创建web工程_Gradle入门:创建Web应用程序项目

    gradle创建web工程 这篇博客文章描述了如何使用Gradle创建一个Web应用程序项目. 更具体地说,我们想创建一个使用Java的Web应用程序项目,将我们的Web应用程序打包到WAR文件中,并 ...

  7. 如何使用Java,Maven,Jetty创建Web应用程序项目

    在本文中,我们使用Maven Archetype插件创建一个简单的Web应用程序. 我们将在名为Jetty的Servlet容器中运行此Web应用程序,添加一些依赖项,编写简单的Servlet,并生成W ...

  8. Gradle入门:创建Web应用程序项目

    这篇博客文章描述了如何使用Gradle创建一个Web应用程序项目. 更具体地说,我们想创建一个使用Java的Web应用程序项目,将我们的Web应用程序打包到WAR文件中,并在开发环境中运行我们的Web ...

  9. OWASP之安全日志记录和监控失败

    windows系统日志 windows系统日志:命令eventvwr.exe查看 日志缺失的危害 不记录可审计的事件,例如登录.失败登录和高价值交易. 警告和错误不会生成.不充分或不清楚的日志消息. ...

最新文章

  1. java spark persist,hadoop – 我的sparkDF.persist(DISK_ONLY)数据存储在哪里?
  2. python|selenium的API说明文档查看的2种方法
  3. 小K的农场(luogu P1993
  4. linux下gdb调试方法和技巧详解
  5. 无线路由器——多路由器无线桥联解决方案
  6. 制做任意大小的bmp,并在其中写汉字
  7. OPENCV-2 学习笔记
  8. 以后可能用到的一些OQL
  9. 数据结构--------------静态表的希尔排序
  10. ubuntu 自动加载ko_linux驱动模块开机自动加载,以及应用程序开机自启动
  11. 求助了,园子里的高手们,软件运行报401错误
  12. 大杂烩 -- 四种生成和解析XML文档的方法详解
  13. php 上传sb2,基于标准的http来实现Android多文件上传
  14. 人人影视字幕组因盗版视频被查 涉案金额1600余万元
  15. Windows下多线程的使用
  16. 家里有古玩古董摆放在家中好吗?
  17. 像素越多越好?像元的面积越小越好?
  18. HTML5响应式手机模板:IOS风格app手机个人中心页面模板HTML+CSS+JavaScript
  19. 《web课程设计》期末网页制作 基于HTML+CSS+JavaScript制作公司官网页面精美
  20. 8cm等于多少像素_厘米与像素一张图片,要打印尺寸为10.8厘米*17厘米,图片要编 爱问知识人...

热门文章

  1. python简单爬虫课题_VS2019python爬虫入门
  2. webstorm创建代码模板
  3. 牛客网JAVA专项联系共899题--个人记录学习经历
  4. 实现滚到div时淡入效果
  5. openshift安装_云幸福–如何在几分钟内安装新的OpenShift Container Platform 3.7
  6. aws 堆栈模板_使用Arquillian和LocalStack脱机测试AWS云堆栈
  7. apache.camel_Apache Camel 2.19发布–新增功能
  8. spring 启动进度_在Web浏览器中显示Spring应用程序启动的进度
  9. java 登陆验证失败_使用Java 8流进行快速失败的验证
  10. eclipse扩展点_Eclipse扩展点评估变得容易