文件上传服务失败:java.lang.ClassNotFoundException:jakarta.ws.rs.core.EntityPart

问题描述 投票:0回答:1

Helidon 3.x,编写一个服务以使用文件输入更新 Clob 列。下面是详细内容。

依赖性

 <dependency>     
<groupId>org.glassfish.jersey.media</groupId>     
<artifactId>jersey-media-multipart</artifactId>     
<version>3.1.5</version> 
</dependency>

添加了功能提供者 `

@Provider public class MultiPartFeatureProvider implements Feature {
/**
 * @param context
 * @return bool
 */
@Override
public boolean configure(final FeatureContext context) {
    return new MultiPartFeature().configure(context);
}

}`

API示例 `

@POST @Path("/sample") 
@Consumes(MediaType.MULTIPART_FORM_DATA) 
public Response readFile(final MultiPart parts) { 
    try { 
        for (BodyPart part : parts.getBodyParts()) { 
                                            if ("file[]".equals(part.getContentDisposition().getParameters().get("name"))) { return Response.ok(new String(part.getEntityAs(BodyPartEntity.class).getInputStream().readAllBytes())) .build();
                } 
               }
        } catch (Exception e) {
        }
    return Response.serverError().build();
}

错误堆栈

Exception in thread "main" jakarta.enterprise.event.ObserverException         at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newIns ... java.lang.ClassNotFoundException: jakarta.ws.rs.core.EntityPart         at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)         at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)         at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526)         ... 61 more

helidon
1个回答
0
投票

我怀疑你的类路径有问题(即你的 pom.xml,如果你使用 Maven)。

请参阅此处的工作示例:https://github.com/helidon-io/helidon/blob/3.2.5/examples/microprofile/multipart/src/main/java/io/helidon/examples/microprofile/multipart/ FileService.java#L67

© www.soinside.com 2019 - 2024. All rights reserved.