You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Quarkus原生模式连接AWS Neptune时缺失AWS类的问题求助

解决Quarkus原生模式下AWS Neptune连接的ServiceConfigurationError问题

针对你遇到的java.util.ServiceConfigurationError: software.amazon.awssdk.http.crt.AwsCrtSdkHttpService找不到提供者的问题,可以按以下步骤排查解决:

1. 引入正确的Quarkus AWS CRT扩展

不要直接引入普通AWS SDK CRT依赖,改用Quarkus官方提供的扩展,它会自动处理原生模式下的服务注册与配置:

<dependency>
    <groupId>io.quarkiverse.amazonservices</groupId>
    <artifactId>quarkus-amazon-neptune</artifactId>
</dependency>
<dependency>
    <groupId>io.quarkiverse.amazonservices</groupId>
    <artifactId>quarkus-amazon-crt-http-client</artifactId>
    <scope>runtime</scope>
</dependency>

2. 正确配置原生镜像的反射与服务注册

如果需要手动指定原生镜像参数,确保覆盖完整的服务提供者类及相关依赖类:

quarkus.native.additional-build-args=-H:RegisterForReflection=software.amazon.awssdk.http.crt.AwsCrtSdkHttpService,software.amazon.awssdk.http.crt.DefaultCrtHttpClientBuilder

也可以通过配置文件实现:在src/main/resources/META-INF/native-image下创建reflection-config.json,添加内容:

[
  {
    "name": "software.amazon.awssdk.http.crt.AwsCrtSdkHttpService",
    "allDeclaredConstructors": true,
    "allPublicConstructors": true,
    "allDeclaredMethods": true,
    "allPublicMethods": true
  }
]

3. 排除冲突的HTTP客户端依赖

检查pom.xml,确保没有同时引入其他AWS HTTP客户端扩展(如quarkus-amazon-netty-http-client或quarkus-amazon-url-connection-client),这类依赖会与CRT客户端产生冲突。若存在,通过<exclusions>移除:

<dependency>
    <groupId>io.quarkiverse.amazonservices</groupId>
    <artifactId>quarkus-amazon-neptune</artifactId>
    <exclusions>
        <exclusion>
            <groupId>io.quarkiverse.amazonservices</groupId>
            <artifactId>quarkus-amazon-netty-http-client</artifactId>
        </exclusion>
    </exclusions>
</dependency>

4. 强制指定CRT为默认HTTP客户端

在application.properties中添加配置,确保AWS SDK优先使用CRT客户端:

quarkus.amazon.common.http-client-type=crt

5. 验证版本兼容性

使用Quarkus BOM统一管理版本,确保quarkus-amazon-neptune、quarkus-amazon-crt-http-client与Quarkus核心版本匹配:

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>io.quarkus</groupId>
            <artifactId>quarkus-bom</artifactId>
            <version>${quarkus.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
        <dependency>
            <groupId>io.quarkiverse.amazonservices</groupId>
            <artifactId>quarkus-amazon-services-bom</artifactId>
            <version>${quarkus-amazon-services.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

完成以上步骤后重新构建原生镜像,即可解决服务提供者找不到的问题。

内容的提问来源于stack exchange,提问作者Konstantin Rezchikov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 09:40:58