如何在 quartz 作业中访问其他 servlet 的初始化参数或上下文上下文参数?
How to acces other servlet's init-parameters or context's contex-parameters inside quartz jobs?
我已经使用示例 2 中的 XML 作业配置定义了我的 quartz 作业
http://www.mkyong.com/java/example-to-run-multiple-jobs-in-quartz/
我有其他 servlet 有一些初始化参数,我的网络应用程序也有一些上下文参数。
如何在实现作业 class 的作业中访问这些参数?
我在这里看到了几个选项。
创建一个 holder 对象,它只包含您要在工作中访问的信息。
public class ConfigHolder {
static public Map importantData;
}
然后您将在其 init
方法中使用 servlet2
初始化数据。
像这样使用 JobDataMap 安排作业[=14=]
JobDetail jd = new JobDetail("yourjob", Scheduler.DEFAULT_GROUP, JobClass.class);
jd.getJobDataMap().put("config", configObject);
1) 基本上可以像这样访问 servlet 的上下文
在web.xml
<context-param>
<param-name>quartz:scheduler-context-servlet-context-key</param-name>
<param-value>ServletContext</param-value>
</context-param>
在代码中
ServletContext MyServletContext = null;
MyServletContext = (ServletContext) context.getScheduler().getContext().get("ServletContext");
2) 然后另一个servlet的参数是这样的
ServletContext.getServletRegistration("MyServlet").getInitParameter("MyInitParam");
我已经使用示例 2 中的 XML 作业配置定义了我的 quartz 作业
http://www.mkyong.com/java/example-to-run-multiple-jobs-in-quartz/
我有其他 servlet 有一些初始化参数,我的网络应用程序也有一些上下文参数。
如何在实现作业 class 的作业中访问这些参数?
我在这里看到了几个选项。
创建一个 holder 对象,它只包含您要在工作中访问的信息。
public class ConfigHolder {
static public Map importantData;
}
然后您将在其 init
方法中使用 servlet2
初始化数据。
像这样使用 JobDataMap 安排作业[=14=]
JobDetail jd = new JobDetail("yourjob", Scheduler.DEFAULT_GROUP, JobClass.class);
jd.getJobDataMap().put("config", configObject);
1) 基本上可以像这样访问 servlet 的上下文
在web.xml
<context-param>
<param-name>quartz:scheduler-context-servlet-context-key</param-name>
<param-value>ServletContext</param-value>
</context-param>
在代码中
ServletContext MyServletContext = null;
MyServletContext = (ServletContext) context.getScheduler().getContext().get("ServletContext");
2) 然后另一个servlet的参数是这样的
ServletContext.getServletRegistration("MyServlet").getInitParameter("MyInitParam");