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