Search code examples
helidon

File Upload Service Failure : java.lang.ClassNotFoundException: jakarta.ws.rs.core.EntityPart


Helidon 3.x, Writing a service to Update a Clob Column with File Input. Below are the details.

Dependency

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

Added the Feature Provider `

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

}`

API Sample `

@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();
}

Error Stack 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


Solution

  • I suspect something wrong in your classpath (I.e. your pom.xml if you are using Maven).

    See a working example here: https://github.com/helidon-io/helidon/blob/3.2.5/examples/microprofile/multipart/src/main/java/io/helidon/examples/microprofile/multipart/FileService.java#L67