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

Reply via email to