【问题标题】:Quartz - ClassCastException石英 - ClassCastException
【发布时间】:2011-02-02 10:21:56
【问题描述】:

我正在使用 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

有人知道吗?

谢谢。

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

    • 如果我删除了我的应用程序中的那个,IT 将无法编译,因为我需要这个 jar 中的一些库。
    • @rayman:您的编译类路径,以及在您的可部署应用程序中打包的内容,是完全不同的两件事。根据您需要的任何石英 JAR 进行编译,但不要将其打包到您的 WAR/EAR 中。
    【解决方案2】:

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

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

    按照tutorial 操作,检查您是否正确配置了quartz。

    【讨论】:

      【解决方案3】:

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

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

      就是这样。服务是绑定的,可以在整个 EAR 内使用。

      【讨论】:

      • 不应该在 jboss-service.xml 吗??
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-04
      • 2012-07-18
      • 1970-01-01
      • 2021-05-18
      • 2011-05-01
      • 2018-10-13
      相关资源
      最近更新 更多