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

Helidon 3.x文件上传服务报错:java.lang.ClassNotFoundException: jakarta.ws.rs.core.EntityPart

问题解决:Helidon 3.x 中 jakarta.ws.rs.core.EntityPart 类找不到的问题

错误原因分析

出现ClassNotFoundException: jakarta.ws.rs.core.EntityPart的核心原因是:你引入的jersey-media-multipart版本与Helidon 3.x内置的JAX-RS依赖版本不兼容,且Helidon 3.x推荐使用自身封装的Multipart组件,而非直接依赖Jersey的原生Multipart库。


具体解决步骤

1. 替换依赖为Helidon官方Multipart组件

移除原有的jersey-media-multipart依赖,改用Helidon提供的Multipart支持:

<dependency>
    <groupId>io.helidon.media</groupId>
    <artifactId>helidon-media-multipart</artifactId>
</dependency>

如果你的项目使用Helidon BOM管理版本,无需手动指定版本号,BOM会自动匹配与Helidon 3.x兼容的版本。

2. 删除自定义的MultiPartFeatureProvider

Helidon的MultiPartFeature会自动完成注册,不需要手动实现Feature Provider。若需手动注册,直接在应用启动时添加io.helidon.media.multipart.MultiPartFeature即可。

3. 调整API代码适配Helidon Multipart规范

修改接口代码,使用Helidon封装的Multipart API(与Jersey API略有差异):

import io.helidon.media.multipart.BodyPart;
import io.helidon.media.multipart.BodyPartEntity;
import io.helidon.media.multipart.MultiPart;
import jakarta.ws.rs.Consumes;
import jakarta.ws.rs.POST;
import jakarta.ws.rs.Path;
import jakarta.ws.rs.core.MediaType;
import jakarta.ws.rs.core.Response;

@POST
@Path("/sample")
@Consumes(MediaType.MULTIPART_FORM_DATA)
public Response readFile(MultiPart parts) {
    try {
        for (BodyPart part : parts.bodyParts()) {
            if ("file[]".equals(part.contentDisposition().name())) {
                BodyPartEntity entity = part.entity(BodyPartEntity.class);
                String content = new String(entity.inputStream().readAllBytes());
                return Response.ok(content).build();
            }
        }
    } catch (Exception e) {
        e.printStackTrace(); // 建议替换为项目日志组件记录异常
    }
    return Response.serverError().build();
}

4. 确保依赖版本一致性

在pom.xml中引入Helidon BOM,统一管理所有依赖版本,彻底避免版本冲突:

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>io.helidon</groupId>
            <artifactId>helidon-bom</artifactId>
            <version>3.2.2</version> <!-- 替换为你使用的Helidon 3.x具体版本 -->
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

内容的提问来源于stack exchange,提问作者Nagarjuna Katta

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 03:05:13