Wildfly 9 - 排除Quartz依赖关系的问题

时间:2016-05-31 23:54:43

标签: jboss quartz-scheduler wildfly wildfly-9

我使用Wildfly 9同时部署两个Web应用程序(战争)。我最近升级了其中一个应用程序使用的石英版本,现在我在部署时遇到以下错误:

Caused by: org.quartz.SchedulerConfigException: Unable to instantiate InstanceIdGenerator class: org.quartz.simpl.SimpleInstanceIdGenerator cannot be cast to org.quartz.spi.InstanceIdGenerator [See nested exception: java.lang.ClassCastException: org.quartz.simpl.SimpleInstanceIdGenerator cannot be cast to org.quartz.spi.InstanceIdGenerator]
    at org.quartz.impl.StdSchedulerFactory.instantiate(StdSchedulerFactory.java:814)
    at org.quartz.impl.StdSchedulerFactory.getScheduler(StdSchedulerFactory.java:1519)
    at org.springframework.scheduling.quartz.SchedulerFactoryBean.createScheduler(SchedulerFactoryBean.java:597)
    at org.springframework.scheduling.quartz.SchedulerFactoryBean.afterPropertiesSet(SchedulerFactoryBean.java:480)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1631)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1568)
    ... 42 more

Caused by: java.lang.ClassCastException: org.quartz.simpl.SimpleInstanceIdGenerator cannot be cast to org.quartz.spi.InstanceIdGenerator
    at org.quartz.impl.StdSchedulerFactory.instantiate(StdSchedulerFactory.java:811)
    ... 47 more

据我所知,Wildfly没有使用石英(是吗?),所以我假设有一个类加载confilct与来自其他应用程序的石英依赖。我试图在Jboss-deployment-structure中添加一个石英排除,但冲突仍然存在。这是我的jboss-deployment-structure:

<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.2">
    <deployment>
        <dependencies>
            <module name="deployment.urtdsm-historian"/>

            <!-- ANTLR -->
            <module name="org.antlr" />

            <!-- ASM -->
            <module name="asm.asm" />

            <!-- APACHE COMMONS -->
            <module name="org.apache.commons.beanutils" />
            <module name="org.apache.commons.codec" />
            <module name="org.apache.commons.collections" />
            <module name="org.apache.commons.io" />
            <module name="org.apache.commons.pool" />

            <!-- JAVAX.VALIDATION -->
            <module name="javax.validation.api" />

            <!-- DOM4J -->
            <module name="org.dom4j" />

            <!-- JTA -->
            <module name="javax.transaction.api" />

            <!-- WOODSTOX -->
            <module name="org.codehaus.woodstox" />

            <!-- JETTISON -->
            <module name="org.codehaus.jettison" />

            <!-- JACKSON -->
            <module name="org.codehaus.jackson.jackson-core-asl" />
            <module name="org.codehaus.jackson.jackson-mapper-asl" />

            <!-- JAVASSIST -->
            <module name="org.javassist" />

            <!-- APACHE NEETHI -->
            <module name="org.apache.neethi" />

        </dependencies>

        <exclusions>
            <module name="org.hibernate" />
            <module name="org.hibernate.validator" />
            <module name="org.slf4j" />
            <module name="org.slf4j.impl" />
            <module name="org.apache.commons.logging" />
            <module name="org.apache.log4j" />
            <module name="org.jboss.logging" />
            <module name="org.jboss.logging.jul-to-slf4j-stub" />
            <module name="org.jboss.logmanager" />
            <module name="org.jboss.logmanager.log4j" />
            <module name="com.sun.xml.bind" />
            <module name="org.quartz-scheduler" />
        </exclusions>

        <exclude-subsystems>
             <subsystem name="webservices" />
             <subsystem name="weld" />
         </exclude-subsystems>
    </deployment>
    <module name="deployment.urtdsm-historian">
        <dependencies>
            <module name="deployment.urtdsm-historian-0.1-SNAPSHOT.war">
                <exports>                   
                    <exclude path="org/hibernate/**" />
                    <exclude path="org/springframework/orm/**" />
                    <exclude path="org/springframework/transaction/**" />
                    <exclude path="org/quartz-scheduler/**" />
                    <include path="com/tdf/**" />
                    <include path="com/psymetrix/**" />
                    <include path="org/springframework/**" />
                    <include path="org/aopalliance/**" />
                    <include path="org/aspectj/**" />
                    <include path="org/postgresql/**" />
                </exports>
            </module>
        </dependencies>
    </module>
</jboss-deployment-structure>

我无法找到关于两次部署战争之间的类加载冲突的文档。我在这里做错了吗?任何帮助,将不胜感激。感谢。

Quartz - 2.2.1

Wildfly - 9.0.1

1 个答案:

答案 0 :(得分:0)

我通过排除Spring调度来修复此问题。我的Quartz排除正在运行,但Quartz仍然通过依赖链进入。