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 <j...@nanthrax.net> 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 <alex.s...@envieta.com 
>> <mailto:alex.s...@envieta.com>> a écrit :
>> 
>> Hello,
>> 
>> Anybody has any insight about this?
>> 
>> Best regards,
>> Alex soto
>> 
>> 
>> 
>> 
>>> On Nov 13, 2020, at 8:54 AM, Alex Soto <alex.s...@envieta.com 
>>> <mailto:alex.s...@envieta.com>> 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 <joao.assun...@exploitsys.com 
>>>> <mailto:joao.assun...@exploitsys.com>> 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: joao.assun...@exploitsys.com <mailto:joao.assun...@exploitsys.com>
>>>> 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 <alex.s...@envieta.com 
>>>> <mailto:alex.s...@envieta.com>> 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
>>>> 
>>>> 
>>>> 
>>>> 
>>> 
>> 
> 

Reply via email to