0

我正在尝试使用ThorntailDeltaSpike创建一个项目。我创建了两个不同的 Maven 项目。

  1. Web - 这将有 JSF 和 CDI。
  2. 核心 - 这将有 DeltaSpike 数据模块、CDI 和 JPA。

这是POM文件:

  1. 核心项目

    jar
    org.apache.deltaspike.distribution distributions-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. 网络项目

    战争 1.9.1 2.5.0.Final

    <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 ,并在核心项目的main/resources中创建了project-defaults.yml 。

但我不断收到以下错误:

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

1 回答 1

1

使用 Thorntail Maven 插件生成 uberjar 的一个 Maven 模块需要了解所有使用的 Thorntail 分数。人们会期望分数会从core依赖项中传递过来,但我认为这并不真正起作用。您要么必须在web模块中将所有分数声明为依赖项,要么可以<fractions>在 Thorntail Maven 插件的配置属性中列出它们。

于 2019-10-21T07:55:45.303 回答