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. Что я делаю не так?
Спасибо! Вот и все. К сожалению, пример, предоставленный сайтом Liquibase, не содержал этой аннотации. http://www.liquibase.org/documentation/cdi.html – lexsoto
Это зависит от уровня спецификации CDI и от вашей конфигурации независимо от того, требуется ли аннотация для определения компонента. Предположительно, пример Liquibase был написан для CDI 1.0. –
Я могу обновить документы, но не использую CDI, чтобы точно знать изменения. Добавлю ли я @Dependent в открытый класс LiquibaseProvider? –