我试图在tomcat启动时启动一个quartz进程,但它不工作,下面是我的简单代码:我的ServletContextListener:
包装石英。测验
import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import org.apache.log4j.Logger;
import org.quartz.CronScheduleBuilder;
import org.quartz.JobBuilder;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.Trigger;
import org.quartz.TriggerBuilder;
import org.quartz.impl.StdSchedulerFactory;
public class ApplicationStartup implements ServletContextListener {
private static Logger log = Logger.getLogger(ApplicationStartup.class);
public static final String QUARTZ_FACTORY_KEY = "org.quartz.impl.StdSchedulerFactory.KEY";
private StdSchedulerFactory factory = null;
public void contextDestroyed(ServletContextEvent event) {
try
{
factory.getDefaultScheduler().shutdown();
} catch (SchedulerException ex)
{
log.info("catch");
}
}
public void contextInitialized(ServletContextEvent sce) {
System.out.println("THE APPLICATION STARTED");
ServletContext ctx = sce.getServletContext();
JobDetail job = JobBuilder.newJob(HelloJob.class).withIdentity("dummyJobName", "group1").build();
Trigger trigger = TriggerBuilder.newTrigger().withIdentity("dummyTriggerName", "group1")
.withSchedule(CronScheduleBuilder.cronSchedule("0/5 * * * * ?")).build();
try {
factory = new StdSchedulerFactory();
ctx.setAttribute(QUARTZ_FACTORY_KEY, factory);
Scheduler scheduler= factory.getScheduler();
scheduler.start();
scheduler.scheduleJob(job, trigger);
} catch (SchedulerException e) {
e.printStackTrace();
}
}
}我的工作:
package quartz.test;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
public class HelloJob implements Job
{
public void execute(JobExecutionContext context) throws JobExecutionException {
System.out.println("Hello Quartz!");
}
}
web.xml
<context-param>
<param-name>quartz:shutdown-on-unload</param-name>
<param-value>false</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-scheduler-on-load</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<param-name>quartz:config-file</param-name>
<param-value>/WEB-INF/classes/quartz.properties</param-value>
</context-param>
<listener>
<listener-class>
org.quartz.ee.servlet.QuartzInitializerListener
</listener-class>
</listener>
编辑:现在工作开始了,但我得到了错误:20/08/2013 11:18:19 org。阿帕奇。卡塔琳娜。加载器。WebappClassLoader clearReferencesThreads严重:web应用程序[/monitor]似乎已启动名为[QuartzTest_Worker-1]的线程,但未能停止该线程。这很可能会造成内存泄漏。
在服务器上将应用程序重新部署到tomcat时,请提供帮助
谢谢
要运行此示例,至少需要Quartz的两个jar文件:
quartz-2.2.x.jar
quartz-jobs-2.2.x.jar
我找到了解决方案,看起来像是石英中的一个漏洞。为了让它工作起来,在maven中添加以下内容:
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.16</version>
</dependency>
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz-jobs</artifactId>
<version>2.2.0</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.6.6</version>
</dependency>
这个错误只出现在2.2.0版上,在2.1.6版上运行正常
我构建了一个web应用程序,包含一个Spring MVC项目,带有一个mysql数据库和一个tomcat7服务器。这个现在发布到OpenShift的GIT上。但是启动服务器只需要160毫秒,我可以清楚地看到没有加载任何东西。 我如何做一个真正的部署并将Openshift Tomcat连接到我的项目?我可以编码,但是就部署而言,我不是一个聪明的灯泡。 怎么了? 编辑:根据要求,pom.xml: :
我有一个maven项目,我想用ApacheTomcat7调试它。以下是我的pom的内容。xml。 我在eclipse中创建了一个名为mytomcatserver的tomcat服务器,并使其使用安装目录。我还在中指定了这个tomcat服务器。m2/设置。xml。当我在maven build中运行tomcat7:deploy时,它将war部署到指定的tomcat实例,然后我可以从浏览器访问web应用程
也许不是Maven的问题。也许是m2e/wtp问题? 为了给出一个背景,我在Eclipse中建立了一个ICEFaces项目,并在Tomcat7.0.30中部署了它。在将servlet-api.jar部署到Tomcat时,似乎忽略了所提供范围中的Maven POM配置。我错过什么了吗?我如何让Maven做得正确? 在该项目中,javax.servlet-api.jar作为IceFaces的可传递依赖
我遵循以下指南开始使用IBM Social Business ToolKit:https://www.ibmdw.net/social/getting-started-as-java-developer/ 尝试列出社区(/myapp.contextroot/GetMyCommunity.jsp),我得到了一个响应(application/javascript): 似乎我需要以某种方式配置JS运行时
我创建了一个JasperReport应用程序,它在tomcat服务器上运行良好。但是当我使用相同的jar在Jboss上运行时,它会显示错误 原因:java.lang.ClassCastException:org.apache.xerces.jaxp.DocumentBuilderFactoryImpl无法强制转换为javax.xml.parsers.DocumentBuilderFactor.ne
MyService.Event将响应提供给“My DaemonThread”(它保存引用并每5秒写入一次响应)。exits方法。 'My daemonthread'使用“synchronized(this){this.wait(5000);}”来表示等待(最初使用thread.sleep(),但为了使其正常工作,我将其改为wait()) 连接2->已启动,但没有线程调用MyService.Even
我一直在使用<code>mvn tomcat7 maven-plugin:run-am-pl:foo</code>成功地在Tomcat中一次只运行一个项目,如下图所示。现在我想让多个模块在同一端口但不同的上下文下运行。例如,我希望: 这是我一直在使用的pom.xml片段的一个例子: 使用插件是否可以做到这一点?我正在努力寻找正确的语法来让它发挥良好的作用。当我运行命令来运行它时,它只运行它在项目层
我刚刚部署(有史以来第一次)基于Spring的Java应用程序。在本地主机上,一切正常,但在部署后,我无法发送任何请求。应用程序只是不在服务器上运行。 日志: 有什么问题吗?我将非常感谢任何帮助。 编辑: 如果它有帮助 - 我已经下载了我刚刚部署在服务器上的示例Web项目,它运行良好。该项目具有上述依赖项,但区别在于部署后的日志。部署该示例应用后,日志中是典型的 Spring 日志: 但是在部署我