Quartz - ClassCastException

时间:2011-02-02 10:21:57

标签: java jboss ejb quartz-scheduler jboss5.x

我使用的是Jboss5.1.x,EJB3.0 我正在尝试配置Quartz。 我尝试查找时遇到此异常:

       InitialContext ctx = new InitialContext();
        StdScheduler scheduler = (StdScheduler) ctx.lookup("Quartz");

这是例外:

  

java.lang.ClassCastException:org.quartz.impl.StdScheduler无法强制转换为org.quartz.Scheduler

任何人都有任何想法?

感谢。

3 个答案:

答案 0 :(得分:4)

你很可能在你的类路径中有两个Quartz JAR副本 - JBoss有自己的副本,你的应用程序也可能在它的lib目录中有一个副本。两者发生了冲突。

从您的应用程序中删除JAR,然后重试。

答案 1 :(得分:1)

这是因为你有一个绑定到JNDI的调度程序,所以你应该这样做:

 Scheduler scheduler = (Scheduler) ctx.lookup("Quartz");

按照此tutorial检查您是否正确配置了石英。

答案 2 :(得分:0)

解决方案是在META-INF中的quartzservice中设置jboss-service.xml

 <module>
     <service>quartzservice.sar</service>
 </module>

就是这样。服务受到约束,可以在整个EAR中使用。