当前位置: 首页 > 知识库问答 >
问题:

Quarkus对类型的依赖关系不满意。使用扩展

詹甫
2023-03-14

我有下一个结构:

>

  • QUARKUS扩展'core',带有接口的某些接口和bean的某些容器:

     @ApplicationScoped
     public class SomeContainer {
    
       @Inject
       SomeInterface someInterface;
     }
    

    Quarkus扩展与SomeImpl bean的“实现”:

     @ApplicationScoped
     public class SomeImpl implements SomeInterface {
    
     }
    

    quokus应用程序-'starter',它依赖于quokus扩展'实现'和jax rs控制器:

     @Path("/hello")
     public class GreetingResource {
    
       @Inject
       SomeContainer someContainer;
    
       @GET
       @Produces(MediaType.TEXT_PLAIN)
       public String hello() {
    
       }
    }
    

    当我尝试启动应用程序时,我收到一个错误:

    Caused by: javax.enterprise.inject.spi.DeploymentException: javax.enterprise.inject.UnsatisfiedResolutionException: Unsatisfied dependency for type by.test.core.SomeInterface and qualifiers [@Default]
    

    如何修复它?链接到项目https://github.com/flagmen/quarkus-test

  • 共有1个答案

    慕容俭
    2023-03-14

    初学者模块只依赖于核心模块,而核心模块本身不包含SomeInterface的CDI可注入候选模块。

    您还应该添加包含可发现bean的实现模块作为依赖项:

    <!-- quarkus-test/starter/pom.xml -->
    <dependencies>
        <dependency>
            <groupId>io.quarkus</groupId>
            <artifactId>quarkus-resteasy</artifactId>
        </dependency>
        <dependency>
            <groupId>io.quarkus</groupId>
            <artifactId>quarkus-junit5</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>io.rest-assured</groupId>
            <artifactId>rest-assured</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>by.test</groupId>
            <artifactId>core</artifactId>
            <version>1.0.0</version>
        </dependency>
        <dependency>
            <groupId>by.test</groupId>
            <artifactId>implementation</artifactId> <!-- you can even omit the core module as it will be transitively imported -->
            <version>1.0.0</version>
        </dependency>
    </dependencies>
    
     类似资料:
    • 我试图为我的一个Quarkus应用程序实现JWT令牌,但不知何故得到了一个异常——对类型org的依赖关系不满意。日食微文件。jwt。JsonWebToken和限定符[@Default] 我的Quarkus应用程序相当简单,只有一个restendpoint- 但当我尝试运行quarkus应用程序时- 日志堆栈跟踪 我真的错过了什么吗? 这是我的身材。格拉德尔

    • 我试图让ESB系统使用ServiceMix和ActiveMQ运行。但甚至在我深入到这一点之前,我就有一个关于POM依赖类型的问题。我得到的maven依赖关系如下: 如能提供任何指导,不胜感激。这个ServiceMix由于缺乏文档而令人沮丧。

    • java.lang.noClassDefoundError:scala/collection/gentraversableonce$class at kafka.utils.pool.(pool.scala:28)~[kafka2.10-0.8.1.1.jar:na] at kafka.consumer.FetchRequestandResponseStatsRegistry$.~[kafka2.

    • 我试图修改我们现有的CDI扩展,它创建自己的代理bean。现在只有一个为每个服务创建的代理。服务有类似于应用程序范围的东西,所以服务总是只有一个实例。 我想要完成的是为每个注入点创建一个代理bean。我需要它们来存储特定于给定注射点的一些信息。如果同一个服务有更多的注入点,那么将有更多的代理bean,但它们后面仍然有一个服务实例。但是,当我以这种方式更改行为时,Weld会抱怨不明确的依赖关系,因为

    • 在SecurityServiceImpl中注入此RoleRepo时,我面临此错误。 我的spring上下文文件 我的角色类

    • 在我的夸克应用程序中,我在一个单独的gradle项目/模块中实现了存储库,部分原因是我希望能够确保单元测试不使用数据库等。 问题是,如果我想在测试中使用任何注入的依赖项,我需要使用@QuarkusTest,然后构建或启动确保满足所有依赖项。 有没有一种方法不涉及模仿每一个外部依赖,例如。? < li >运行测试时,不要在构建或启动期间强制依赖关系,而是在运行时让它出错(如果被访问)。 < li >