Неудовлетворенные зависимости для типа DatasourcesFraction - PullRequest
0 голосов
/ 21 октября 2019

Я пытаюсь создать проект, используя Thorntail и DeltaSpike . Я создал два разных проекта Maven.

  1. Web - в нем будут JSF и CDI.
  2. Core - будет иметь модуль данных DeltaSpike, CDI и JPA.

вот файлы POM:

  1. Базовый проект

    jar
    org.apache.deltaspike.distribution Distribution-BOM ${deltaspike.version} pom import io.thorntail bom $ {version.thorntail} pom import

    <dependencies>
    
        <dependency>
          <groupId>io.thorntail</groupId>
          <artifactId>cdi</artifactId>
          <version>${version.thorntail}</version>
        </dependency>
        <dependency>
          <groupId>io.thorntail</groupId>
          <artifactId>jpa</artifactId>
          <version>${version.thorntail}</version>
        </dependency>
        <dependency>
            <groupId>io.thorntail</groupId>
            <artifactId>datasources</artifactId>
            <version>${version.thorntail}</version>
        </dependency>       
        <dependency>
            <groupId>org.apache.deltaspike.core</groupId>
            <artifactId>deltaspike-core-api</artifactId>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.deltaspike.core</groupId>
            <artifactId>deltaspike-core-impl</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.deltaspike.modules</groupId>
            <artifactId>deltaspike-data-module-api</artifactId>
            <version>${deltaspike.version}</version>
            <scope>compile</scope>
        </dependency>       
        <dependency>
            <groupId>org.apache.deltaspike.modules</groupId>
            <artifactId>deltaspike-data-module-impl</artifactId>
            <version>${deltaspike.version}</version>
            <scope>runtime</scope>
        </dependency>
    
        <dependency>
            <groupId>com.h2database</groupId>
            <artifactId>h2</artifactId>
            <version>1.4.192</version>
        </dependency>
    
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>compile</scope>
        </dependency>
         <dependency>
            <groupId>io.thorntail</groupId>
            <artifactId>arquillian</artifactId>
            <scope>test</scope>
         </dependency>
        <dependency>
                <groupId>com.google.guava</groupId>
                <artifactId>guava</artifactId>
                <version>24.0-jre</version>
                 <scope>test</scope>
        </dependency>
    </dependencies>
    <build>
        <finalName>core</finalName>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>
    
  2. Веб-проект

    war 1.9.1 2.5.0. Окончательный

    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>test.core</groupId>
            <artifactId>core</artifactId>
            <version>0.0.1-SNAPSHOT</version>           
        </dependency>
        <dependency>
            <groupId>io.thorntail</groupId>
            <artifactId>jsf</artifactId>
            <version>${version.thorntail}</version>
        </dependency>
        <dependency>
            <groupId>io.thorntail</groupId>
            <artifactId>cdi</artifactId>
            <version>${version.thorntail}</version>
        </dependency>
    </dependencies>
    <build>
        <finalName>web</finalName>
        <plugins>
             <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>           
            <plugin>
                <groupId>io.thorntail</groupId>
                <artifactId>thorntail-maven-plugin</artifactId>
                <version>${version.thorntail}</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>package</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
    

Я создаю entityManagerProducer , у меня есть persistence.xml , и я создал project-defaults. yml в main / resources основного проекта.

Но я продолжаю получать следующую ошибку:

2019-10-21 09:04:47,733 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-7) MSC000001: Failed to start service jboss.deployment.unit."web.war".WeldStartService: org.jboss.msc.service.StartException in service jboss.deployment.unit."web.war".WeldStartService: Failed to start service
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.execute(ServiceControllerImpl.java:1730)
    at org.jboss.msc.service.ServiceControllerImpl$ControllerTask.run(ServiceControllerImpl.java:1558)
    at org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
    at org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:1985)
    at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1487)
    at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1378)
    at java.lang.Thread.run(Thread.java:745)
Caused by: org.jboss.weld.exceptions.DeploymentException: WELD-001408: Unsatisfied dependencies for type DatasourcesFraction with qualifiers @Default
  at injection point [BackedAnnotatedField] @Inject org.wildfly.swarm.datasources.runtime.DatasourceAndDriverCustomizer.fraction
  at org.wildfly.swarm.datasources.runtime.DatasourceAndDriverCustomizer.fraction(DatasourceAndDriverCustomizer.java:0)

    at org.jboss.weld.bootstrap.Validator.validateInjectionPointForDeploymentProblems(Validator.java:378)
    at org.jboss.weld.bootstrap.Validator.validateInjectionPoint(Validator.java:290)
    at org.jboss.weld.bootstrap.Validator.validateGeneralBean(Validator.java:143)
    at org.jboss.weld.bootstrap.Validator.validateRIBean(Validator.java:164)
    at org.jboss.weld.bootstrap.Validator.validateBean(Validator.java:526)
    at org.jboss.weld.bootstrap.ConcurrentValidator$1.doWork(ConcurrentValidator.java:64)
    at org.jboss.weld.bootstrap.ConcurrentValidator$1.doWork(ConcurrentValidator.java:62)
    at org.jboss.weld.executor.IterativeWorkerTaskFactory$1.call(IterativeWorkerTaskFactory.java:62)
    at org.jboss.weld.executor.IterativeWorkerTaskFactory$1.call(IterativeWorkerTaskFactory.java:55)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
    at org.jboss.threads.JBossThread.run(JBossThread.java:485)

1 Ответ

0 голосов
/ 21 октября 2019

Один модуль Maven, использующий плагин Thorntail Maven для генерации uberjar, должен знать обо всех используемых фракциях Thorntail. Можно было бы ожидать, что дроби будут вводиться транзитивно из зависимости core, но я думаю, что это не работает. Вы должны либо объявить все дроби как зависимости в модуле web, либо вы можете перечислить их в свойстве конфигурации <fractions> плагина Thorntail Maven.

...