首页 > 解决方案 > 在 Spring Boot 中导入 jboss ResteasyClient 会阻止它启动

问题描述

我们正在设置一个由 Keycloak 身份验证服务器备份的 Spring Boot (v2.0.5) 服务器应用程序。

Keycloak 提供了一些 Java Admin API (keycloak-admin-client),不幸的是,它需要 org.jboss.resteasy.resteasy-client 包中的 ResteasyClient 作为依赖项。

但是,如果我将此依赖项添加到 POM

<dependency>
    <groupId>org.jboss.resteasy</groupId>
    <artifactId>resteasy-client</artifactId>
    <version>3.6.1.Final</version>
</dependency>

当服务器启动时,我最终遇到以下错误:

org.springframework.beans.factory.BeanCreationException:在类路径资源[org/springframework/boot/autoconfigure/jsonb/JsonbAutoConfiguration.class]中定义名称为“jsonb”的bean创建错误:通过工厂方法进行bean实例化失败;嵌套异常是 org.springframework.beans.BeanInstantiationException:无法实例化 [javax.json.bind.Jsonb]:工厂方法 'jsonb' 抛出异常;嵌套异常是 javax.json.bind.JsonbException: JSON Binding provider org.eclipse.yasson.JsonBindingProvider not found

我真的不知道如何解决这个错误。有任何想法吗?

编辑:添加我在 POM 中添加的 Keycloak 相关依赖项:

<dependency>
    <groupId>org.keycloak</groupId>
    <artifactId>keycloak-admin-client</artifactId>
    <version>4.4.0.Final</version>
 </dependency>
 <dependency>
    <groupId>org.jboss.resteasy</groupId>
    <artifactId>resteasy-client</artifactId>
    <version>3.6.1.Final</version>
</dependency>
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.keycloak.bom</groupId>
            <artifactId>keycloak-adapter-bom</artifactId>
            <version>${keycloak.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

标签: javaspring-bootpom.xmlresteasykeycloak

解决方案


好的,我想我终于找到了解决方案。

我的 POM 中需要更多依赖项,完整列表是:

    <dependency>
        <groupId>org.jboss.resteasy</groupId>
        <artifactId>resteasy-client</artifactId>
        <version>3.6.1.Final</version>
    </dependency>
    <dependency>
        <groupId>org.glassfish</groupId>
        <artifactId>javax.json</artifactId>
        <version>1.1.2</version>
    </dependency>
    <dependency>
        <groupId>org.eclipse</groupId>
        <artifactId>yasson</artifactId>
        <version>1.0.1</version>
    </dependency>
    <dependency>
        <groupId>org.jboss.resteasy</groupId>
        <artifactId>resteasy-jaxrs</artifactId>
        <version>3.6.1.Final</version>
    </dependency>
    <dependency>
        <groupId>org.jboss.resteasy</groupId>
        <artifactId>resteasy-jackson2-provider</artifactId>
        <version>3.6.1.Final</version>
    </dependency>

推荐阅读