Hi Alex,

Any chances to have a sample project to share on github?

regards,

François
[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)
>>>     publicvoid upload(@ContextHttpServletRequest request)
>>>     throwsIOException, 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