Wildfly 9 - Проблема, исключающая зависимость от Quartz

Я использую Wildfly 9 для одновременного развертывания двух веб-приложений (войн). Недавно я обновил версию кварца, используемую одним из приложений, и теперь при развертывании я получаю следующую ошибку:

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 не использует кварц (не так ли?), поэтому я предполагаю, что существует конфликт загрузки классов с зависимостью кварца от другого приложения. Я попытался добавить кварцевое исключение в Jboss-deployment-structure, но конфликт сохраняется. Это моя структура развертывания jboss:

<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>

Я не могу найти много документации о конфликтах загрузки классов между двумя развернутыми войнами. Я делаю что-то не так здесь? Любая помощь будет оценена по достоинству. Спасибо.

Кварц - 2.2.1

Дикая муха — 9.0.1


person user3029642    schedule 31.05.2016    source источник
comment
Как устроена библиотека кварца? Он создан как модуль WildFly или непосредственно находится в войне?   -  person Quincy    schedule 01.06.2016
comment
Он живет на войне   -  person user3029642    schedule 01.06.2016


Ответы (1)


Я исправил проблему, исключив планирование Spring. Мое исключение Quartz работало, но Quartz все еще входил через цепочку зависимостей.

person user3029642    schedule 02.06.2016