2014-11-17 6 views
1

Я пытаюсь запустить LiquiBase сценариев с использованием CDI на WildFly 8.1.0.Final, и я получаю эту ошибку:Запуск LiquiBase с КДИ на Wildfly 8

Unsatisfied dependencies for type ResourceAccessor with qualifiers @LiquibaseType 

Мой POM имеет следующие зависимости:

<dependencies> 
    <dependency> 
     <groupId>org.liquibase</groupId> 
     <artifactId>liquibase-core</artifactId> 
     <version>3.3.0</version> 
    </dependency> 
    <dependency> 
     <groupId>org.liquibase</groupId> 
     <artifactId>liquibase-cdi</artifactId> 
     <version>3.3.0</version> 
    </dependency> 
    <dependency> 
     <groupId>com.mattbertolini</groupId> 
     <artifactId>liquibase-slf4j</artifactId> 
     <version>1.2.1</version> 
    </dependency> 
</dependencies> 

Мой CDI Bean выглядит следующим образом:

import javax.annotation.Resource; 
import javax.enterprise.inject.Produces; 
import javax.sql.DataSource; 

import liquibase.integration.cdi.CDILiquibaseConfig; 
import liquibase.integration.cdi.annotations.LiquibaseType; 
import liquibase.resource.ClassLoaderResourceAccessor; 
import liquibase.resource.ResourceAccessor; 

public class LiquibaseStarter { 
    @Produces 
    @LiquibaseType 
    public CDILiquibaseConfig createConfig() { 
     CDILiquibaseConfig config = new CDILiquibaseConfig(); 
     config.setChangeLog("liquibase/parser/core/xml/simpleChangeLog.xml"); 
     return config; 
    } 

    @Resource(name="java:jboss/datasources/ExampleDS") 
    private DataSource ds; 

    @Produces 
    @LiquibaseType 
    public DataSource createDataSource() { 
     return ds; 
    } 

    @Produces 
    @LiquibaseType 
    public ResourceAccessor create() { 
     return new ClassLoaderResourceAccessor(getClass().getClassLoader()); 
    } 
} 

Мой проект представляет собой простой WAR. Что я делаю не так?

ответ

5

LiquibaseStarter не содержит аннотации, определяющие bean. Добавить @Dependent на уровне класса.

+0

Спасибо! Вот и все. К сожалению, пример, предоставленный сайтом Liquibase, не содержал этой аннотации. http://www.liquibase.org/documentation/cdi.html – lexsoto

+0

Это зависит от уровня спецификации CDI и от вашей конфигурации независимо от того, требуется ли аннотация для определения компонента. Предположительно, пример Liquibase был написан для CDI 1.0. –

+0

Я могу обновить документы, но не использую CDI, чтобы точно знать изменения. Добавлю ли я @Dependent в открытый класс LiquibaseProvider? –

Смежные вопросы