Я пытаюсь запустить интеграцию CDI в Liquidibase на Wildfly 12 (JDK 10).Во время запуска появляется следующая ошибка
10:27:30,291 ERROR [org.jboss.as.controller.management-operation] (DeploymentScanner-threads - 2) WFLYCTL0013: Operation ("deploy") failed - address: ([("deployment" => ".war")]) - failure description: {
"WFLYCTL0080: Failed services" => {"jboss.deployment.unit.\".war\".WeldStartService" => "Failed to start service
Caused by: org.jboss.weld.exceptions.DeploymentException: WELD-001408: Unsatisfied dependencies for type ResourceAccessor with qualifiers @LiquibaseType
at injection point [BackedAnnotatedField] @Inject @LiquibaseType liquibase.integration.cdi.CDILiquibase.resourceAccessor
at liquibase.integration.cdi.CDILiquibase.resourceAccessor(CDILiquibase.java:0)
Я нашел похожий вопрос здесь: Запуск Liquibase с CDI на Wildfly 8 , но данное решение не сработало для меня.
Код моего продюсера такой же, как на веб-сайте liquibase: http://www.liquibase.org/documentation/cdi.html package de.xima.lag.system.database.liquibase;
import java.sql.SQLException;
import javax.annotation.Resource;
import javax.enterprise.context.ApplicationScoped;
import javax.enterprise.context.Dependent;
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;
@Dependent
public class LiquibaseProducer {
@Resource
private DataSource myDataSource;
private static final String LIQUIBASE_MASTERFILE_PATH = "META-INF/liquibase/master.xml";
@Produces
@LiquibaseType
public CDILiquibaseConfig createConfig() {
CDILiquibaseConfig config = new CDILiquibaseConfig();
config.setChangeLog(LIQUIBASE_MASTERFILE_PATH);
return config;
}
@Produces
@LiquibaseType
public DataSource createDataSource() throws SQLException {
return myDataSource;
}
@Produces
@LiquibaseType
public ResourceAccessor create() {
return new ClassLoaderResourceAccessor(getClass().getClassLoader());
}
}
Мой maven pom выглядит следующим образом:... org.liquibase liquibase-core 3.6.1
<dependency>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-cdi</artifactId>
<version>3.6.1</version>
</dependency>
...
У кого-нибудь есть идея?
Обновление: Уже включая liquibase-cdi зависимость от проекта вызывает эту ошибку.Так что, я думаю, это не проблема с классом продюсера?