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
我怀疑你的类路径有问题(即你的 pom.xml,如果你使用 Maven)。