Hi JB, Did you have a chance to look into this? It is starting become a blocker in our project, so if there is workaround or any hints, I will appreciate it.
Best regards, Alex soto > On Dec 1, 2020, at 9:03 AM, Jean-Baptiste Onofre <[email protected]> wrote: > > Don’t worry, I will update the karaf-rest-example. > > Regards > JB > >> Le 1 déc. 2020 à 15:01, Alex Soto <[email protected] >> <mailto:[email protected]>> a écrit : >> >> I’ll try but these days I'm very busy…. >> >> Best regards, >> Alex soto >> >> >> >> >>> On Dec 1, 2020, at 8:52 AM, Francois Papon <[email protected] >>> <mailto:[email protected]>> wrote: >>> >>> Hi Alex, >>> >>> Any chances to have a sample project to share on github? >>> >>> regards, >>> >>> François >>> [email protected] <mailto:[email protected]> >>> Le 01/12/2020 à 14:50, Alex Soto a écrit : >>>> No problem, thanks. >>>> >>>> I think it will help others to have a working example of a File Upload >>>> using pure OSGi JAX-RS Whiteboard Specification, all the samples I have >>>> found do not go there. >>>> >>>> Best regards, >>>> Alex soto >>>> >>>> >>>> >>>> >>>>> On Dec 1, 2020, at 8:43 AM, Jean-Baptiste Onofre <[email protected] >>>>> <mailto:[email protected]>> wrote: >>>>> >>>>> Thanks for the update. >>>>> >>>>> I’m pretty busy with ActiveMQ, Decanter, Camel and Karaf5 PoC, but I will >>>>> take a look tomorrow. >>>>> >>>>> Regards >>>>> JB >>>>> >>>>>> Le 1 déc. 2020 à 14:29, Alex Soto <[email protected] >>>>>> <mailto:[email protected]>> a écrit : >>>>>> >>>>>> Hi JB, >>>>>> >>>>>> Yes, Aries JAXRS 1.0.10. >>>>>> I suppose it is PAX-WEB, or whatever the default is for Karaf 4.3.0. >>>>>> >>>>>> The class: >>>>>> >>>>>> import javax.servlet.ServletException; >>>>>> import javax.servlet.annotation.MultipartConfig; >>>>>> import javax.servlet.http.HttpServletRequest; >>>>>> import javax.servlet.http.Part; >>>>>> import javax.ws.rs.Consumes; >>>>>> import javax.ws.rs.DELETE; >>>>>> import javax.ws.rs.GET; >>>>>> import javax.ws.rs.PATCH; >>>>>> import javax.ws.rs.POST; >>>>>> import javax.ws.rs.Path; >>>>>> import javax.ws.rs.PathParam; >>>>>> import javax.ws.rs.Produces; >>>>>> import javax.ws.rs.core.Context; >>>>>> import javax.ws.rs.core.MediaType; >>>>>> import javax.ws.rs.core.SecurityContext; >>>>>> import javax.ws.rs.core.UriInfo; >>>>>> >>>>>> @Component(service = FirmwareResource.class, scope = >>>>>> ServiceScope.PROTOTYPE) >>>>>> @JaxrsResource >>>>>> @Path(ResourceConstants.FIRMWARE_PATH) >>>>>> @JaxrsName("firmware") >>>>>> @JaxrsApplicationSelect(Constants.JAXRS_APP_SELECT) >>>>>> @Produces(Constants.API_MEDIA_TYPE) >>>>>> @Protected >>>>>> @MultipartConfig >>>>>> public class FirmwareResource { >>>>>> >>>>>> @POST >>>>>> @Consumes(MediaType.MULTIPART_FORM_DATA) >>>>>> public void upload(@Context HttpServletRequest request) throws >>>>>> IOException, ServletException { >>>>>> Collection<Part> parts = request.getParts(); >>>>>> ... >>>>>> >>>>>> >>>>>> Thank you for taking a look at this. >>>>>> >>>>>> Best regards, >>>>>> Alex soto >>>>>> >>>>>> >>>>>> >>>>>> >>>>>>> On Dec 1, 2020, at 1:23 AM, Jean-Baptiste Onofre <[email protected] >>>>>>> <mailto:[email protected]>> wrote: >>>>>>> >>>>>>> Hi Alex, >>>>>>> >>>>>>> In order for me to reproduce, are you using: >>>>>>> >>>>>>> - Aries JAXRS 1.0.10 still (or did you update) ? >>>>>>> - Pax Web or Felix as HTTP service ? >>>>>>> - Do you have JEE @MultipartConfig annotation on your JAXRS class ? >>>>>>> - @Consumers is set to MediaType.MULTIPART ? >>>>>>> >>>>>>> It could be necessary to mimic the JAXRS tests by adding a fragment to >>>>>>> bring org.apache.cxf.jaxrs.utils.multipart to Aries JAXRS bundle. >>>>>>> >>>>>>> Regards >>>>>>> JB >>>>>>> >>>>>>>> Le 30 nov. 2020 à 19:19, Alex Soto <[email protected] >>>>>>>> <mailto:[email protected]>> a écrit : >>>>>>>> >>>>>>>> Hello, >>>>>>>> >>>>>>>> Anybody has any insight about this? >>>>>>>> >>>>>>>> Best regards, >>>>>>>> Alex soto >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>> On Nov 13, 2020, at 8:54 AM, Alex Soto <[email protected] >>>>>>>>> <mailto:[email protected]>> wrote: >>>>>>>>> >>>>>>>>> Thank you, João, for your response. >>>>>>>>> >>>>>>>>> Unfortunately, it is not working for me. I tested adding the >>>>>>>>> annotation, and my service look almost identical to yours. >>>>>>>>> >>>>>>>>> I found this thread https://github.com/osgi/osgi.enroute/issues/65 >>>>>>>>> <https://github.com/osgi/osgi.enroute/issues/65> in which Tim Ward >>>>>>>>> explains about the need to set >>>>>>>>> “osgi.http.whiteboard.servlet.multipart.enabled=true” in the >>>>>>>>> configuration PID “org.apache.aries.jax.rs.whiteboard.default” but >>>>>>>>> that is not working either. It still fails with exception: >>>>>>>>> >>>>>>>>> >>>>>>>>> java.lang.IllegalStateException: No multipart config for servlet >>>>>>>>> at org.eclipse.jetty.server.Request.getParts(Request.java:2378) >>>>>>>>> ~[!/:9.4.31.v20200723] >>>>>>>>> at org.eclipse.jetty.server.Request.getParts(Request.java:2366) >>>>>>>>> ~[!/:9.4.31.v20200723] >>>>>>>>> at >>>>>>>>> javax.servlet.http.HttpServletRequestWrapper.getParts(HttpServletRequestWrapper.java:375) >>>>>>>>> ~[!/:3.1.0] >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> Best regards, >>>>>>>>> Alex soto >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>>> On Nov 13, 2020, at 4:30 AM, João Assunção >>>>>>>>>> <[email protected] <mailto:[email protected]>> >>>>>>>>>> wrote: >>>>>>>>>> >>>>>>>>>> Hello Alex, >>>>>>>>>> >>>>>>>>>> I used Multipart with Aries JAX-RS and I'm almost sure I didn't need >>>>>>>>>> to mess with the configuration. >>>>>>>>>> I annotated the class with @MultipartConfig and placed a >>>>>>>>>> @Consumes(MediaType.MULIPART_FOR_DATA). >>>>>>>>>> >>>>>>>>>> @Path("/firmware") >>>>>>>>>> @Component(service = FirmwareService.class, // >>>>>>>>>> immediate = true, // >>>>>>>>>> scope = ServiceScope.SINGLETON, property = { >>>>>>>>>> JaxrsWhiteboardConstants.JAX_RS_RESOURCE + "=true", >>>>>>>>>> JaxrsWhiteboardConstants.JAX_RS_APPLICATION_SELECT + "=(" + >>>>>>>>>> JaxrsWhiteboardConstants.JAX_RS_NAME + "=myApp)" >>>>>>>>>> }) >>>>>>>>>> @MultipartConfig >>>>>>>>>> public class FirmwareService { >>>>>>>>>> .... >>>>>>>>>> @POST >>>>>>>>>> @Path("/upload") >>>>>>>>>> @Consumes(MediaType.MULTIPART_FORM_DATA) >>>>>>>>>> public Response uploadFirmware(@Context HttpServletRequest >>>>>>>>>> request) { >>>>>>>>>> try { >>>>>>>>>> doUploadFirmware(request); >>>>>>>>>> >>>>>>>>>> Hope this helps >>>>>>>>>> >>>>>>>>>> João Assunção >>>>>>>>>> >>>>>>>>>> Email: [email protected] >>>>>>>>>> <mailto:[email protected]> >>>>>>>>>> Mobile: +351 916968984 >>>>>>>>>> Phone: +351 211933149 >>>>>>>>>> Web: www.exploitsys.com <http://www.exploitsys.com/> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> On Thu, Nov 12, 2020 at 5:25 PM Alex Soto <[email protected] >>>>>>>>>> <mailto:[email protected]>> wrote: >>>>>>>>>> With Karaf 4.3.0, using Aries JAX-RS 1.0.10, how can I enable multi >>>>>>>>>> part support? >>>>>>>>>> >>>>>>>>>> I am adding configuration file >>>>>>>>>> “org.apache.aries.jax.rs.whiteboard.default.cfg” to the “etc” >>>>>>>>>> directory with property: >>>>>>>>>> >>>>>>>>>> osgi.http.whiteboard.servlet.multipart.enabled=true >>>>>>>>>> >>>>>>>>>> But I am still getting error: >>>>>>>>>> >>>>>>>>>> java.lang.IllegalStateException: No multipart config for servlet >>>>>>>>>> >>>>>>>>>> When getting parts from HttpServletRequest. >>>>>>>>>> Any help will be appreciated. >>>>>>>>>> >>>>>>>>>> Best regards, >>>>>>>>>> Alex soto >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>> >>>>>> >>>>> >>>> >> >
