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

Quarkus-类型org的未满足依赖关系。日食微文件。jwt

柏高丽
2023-03-14

我试图为我的一个Quarkus应用程序实现JWT令牌,但不知何故得到了一个异常——对类型org的依赖关系不满意。日食微文件。jwt。JsonWebToken和限定符[@Default]

我的Quarkus应用程序相当简单,只有一个restendpoint-

@Path("/jwt")
@RequestScoped
public class JWTRestController {

    @Inject
    JsonWebToken jwt;

    @GET()
    @Path("permit-all")
    @PermitAll
    @Produces(MediaType.TEXT_PLAIN)
    public String hello(@Context SecurityContext ctx) {
        Principal caller =  ctx.getUserPrincipal();
        String name = caller == null ? "anonymous" : caller.getName();
        String helloReply = String.format("hello + %s, isSecure: %s, authScheme: %s", name, ctx.isSecure(), ctx.getAuthenticationScheme());
        return helloReply;
    }

}

但当我尝试运行quarkus应用程序时-

gradlew quarkusDev

日志堆栈跟踪

> Task :quarkusDev
Port 5005 in use, not starting in debug mode

2020-04-05 15:57:49,789 INFO  [org.jbo.threads] (main) JBoss Threads version 3.0.1.Final
2020-04-05 15:57:50,158 ERROR [io.qua.dev.DevModeMain] (main) Failed to start Quarkus: java.lang.RuntimeException: io.quarkus.builder.BuildException: Build failure: Build failed due to errors
        [error]: Build step io.quarkus.arc.deployment.ArcProcessor#validate threw an exception: javax.enterprise.inject.spi.DeploymentException: javax.enterprise.inject.UnsatisfiedResolutionException: Unsatisfied dependency for type org.eclipse.microprofile.jwt.JsonWebToken and qual
ifiers [@Default]
        - java member: com.jhooq.JWTRestController#jwt
        - declared on CLASS bean [types=[com.jhooq.JWTRestController, java.lang.Object], qualifiers=[@Default, @Any], target=com.jhooq.JWTRestController]
        at io.quarkus.arc.processor.BeanDeployment.processErrors(BeanDeployment.java:910)
        at io.quarkus.arc.processor.BeanDeployment.init(BeanDeployment.java:232)
        at io.quarkus.arc.processor.BeanProcessor.initialize(BeanProcessor.java:130)
        at io.quarkus.arc.deployment.ArcProcessor.validate(ArcProcessor.java:291)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

我真的错过了什么吗?

这是我的身材。格拉德尔

plugins {
    id 'java'
    id 'io.quarkus'
}

repositories {
     mavenLocal()
     mavenCentral()
}

dependencies {
    implementation enforcedPlatform("${quarkusPlatformGroupId}:${quarkusPlatformArtifactId}:${quarkusPlatformVersion}")
    implementation 'io.quarkus:quarkus-resteasy'

    testImplementation 'io.quarkus:quarkus-junit5'
    testImplementation 'io.rest-assured:rest-assured'
    testImplementation 'io.quarkus:quarkus-smallrye-jwt'
    testImplementation 'io.quarkus:quarkus-resteasy-jsonb'
    implementation 'org.eclipse.microprofile.jwt:microprofile-jwt-auth-api:1.1.1'
}

group 'com.jhooq'
version '1.0.0-SNAPSHOT'

compileJava {
    options.compilerArgs << '-parameters'
}

java {
    sourceCompatibility = JavaVersion.VERSION_1_8
    targetCompatibility = JavaVersion.VERSION_1_8
}


共有1个答案

呼延智明
2023-03-14

问题就出在这里:

testImplementation 'io.quarkus:quarkus-smallrye-jwt'
testImplementation 'io.quarkus:quarkus-resteasy-jsonb'
implementation 'org.eclipse.microprofile.jwt:microprofile-jwt-auth-api:1.1.1'

quarkus smallrye jwtquarkus resteasy jsonb依赖项是应用程序的一部分,而不是测试的一部分。这些必须是实施,而不是测试实施

同时,您可以删除implementation'org。日食微文件。jwt:microprofile jwt auth api:1.1.1',这是quarkus smallrye jwt通过传递方式引入的。

 类似资料:
  • 我看了所有类似的问题,没有一个能帮助我,所以事情是这样的: 为了在不同的程序中重现错误,我创建了一个简单的Spring Boot程序。在尝试运行它时,我遇到了一个我无法解决的非常奇怪的错误: 相关类别: 通用域名格式。实例演示。演示应用程序。爪哇: com.example.demo.configs.RootConfiguration.java 通用域名格式。实例演示。控制器。测试控制器。爪哇: 我

  • 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.

  • 我有下一个结构: > QUARKUS扩展'core',带有接口的某些接口和bean的某些容器: Quarkus扩展与SomeImpl bean的“实现”: quokus应用程序-'starter',它依赖于quokus扩展'实现'和jax rs控制器: 当我尝试启动应用程序时,我收到一个错误: 如何修复它?链接到项目https://github.com/flagmen/quarkus-test

  • 我试图将给定类型的对象()注入运行在Wildfly 8.2内部的EJB中。但是,部署总是会失败,并显示消息 我试图用注释GreeterImpl和注入点,但这也不起作用。我错过了什么吗? 我的界面: My类(唯一实现的类): 我的EJB: 我是不是错过了CDI的一些东西?我需要at这样做有效吗? 编辑:我将把它作为部署到Wildfly,如果这很重要的话。

  • 我在学习MVC1.0教程时遇到了这个错误。 [ERROR]原因:org.jboss.weld.exceptions.deploymentexception:weld-001408:带有限定符的类型模型的依赖关系不满足@default在注入点[BackedAnnotatedField]@inject ch.xxx.controller.usercontroller.Models在ch.xxx.con