I've created a minimal project here: https://github.com/lexsoto/multipart <https://github.com/lexsoto/multipart>
On a fresh Karaf 4.3.0 it is not working for me. Best regards, Alex soto > On Dec 4, 2020, at 10:49 AM, Jean-Baptiste Onofre <[email protected]> wrote: > > Hi Tim, > > I agree with HTTP whiteboard, but JAXRS whiteboard should work anyway (based > on @Consumes/@Produces MediaType). I’m adding an example to test this. > > I will keep you posted. > > Regards > JB > >> Le 4 déc. 2020 à 16:01, Tim Ward <[email protected] >> <mailto:[email protected]>> a écrit : >> >> Thanks JB, >> >> This will be the issue. The solution in the GitHub bug is based on the Http >> Whiteboard supporting version 1.1 of the spec. If PAX-Web is only 1.0 then >> the property will be ignored. This option hadn’t occurred to me because 1.1 >> has been out for a while and I had forgotten that multipart was a 1.1 >> feature. >> >> Note that there is no problem with implementing version 1.1 of the Http >> Whiteboard on an R6 framework, so using Felix Http Jetty should be fine even >> if Karaf is using an older framework release. >> >> Best Regards, >> >> Tim >> >> Sent from my iPhone >> >> On 4 Dec 2020, at 14:25, Jean-Baptiste Onofre <[email protected] >> <mailto:[email protected]>> wrote: >> >>> Hi, >>> >>> This will work with Pax Web: >>> >>> @WebServlet(value = "/multipart", name = "multipart") >>> @MultipartConfig(fileSizeThreshold = 1024 * 1024 * 10, // 10MB >>> maxFileSize = 1024 * 1024 * 50, // 50MB >>> maxRequestSize = 1024 * 1024 * 100 // 100MB >>> ) >>> public class MultipartExampleServlet extends HttpServlet { … } >>> >>> The @HttpWhiteboardServletMultipart won’t work with Pax Web 7.3 (it will >>> with Pax Web 8) as Pax Web 7.3 is OSGi R6 (not R7). >>> >>> To use @HttpWhiteboardServletMultipart instead of installing Pax Web, you >>> can use Felix HTTP. >>> >>> Regards >>> JB >>> >>>> Le 4 déc. 2020 à 14:41, Alex Soto <[email protected] >>>> <mailto:[email protected]>> a écrit : >>>> >>>> Thanks Tim, I understand, but in practical terms, it makes it difficult to >>>> use. At the end of the day, things don't run in the abstract, there >>>> should be a way to control/configure the underlying runtime whatever that >>>> is. >>>> >>>> That said, I have more information about this issue. I tested a Servlet >>>> using Http Whiteboard annotations: >>>> >>>> @Component(service = Servlet.class) >>>> @HttpWhiteboardServletPattern(Constants.UPLOAD_SERVLET_PATTERN) >>>> @HttpWhiteboardServletMultipart(enabled = true, maxFileSize = 200000) >>>> public class UploadServlet extends HttpServlet { >>>> >>>> @Override >>>> protected void doPut(HttpServletRequest request, >>>> HttpServletResponse response) throws ServletException, >>>> IOException { >>>> >>>> Collection<Part> parts = request.getParts(); >>>> >>>> for (Part part : parts) { >>>> System.out.printf("File %s, %s, %d%n", part.getName(), >>>> part.getContentType(), part.getSize()); >>>> } >>>> } >>>> >>>> >>>> >>>> This is also failing, so it may be something else with the Karaf stack. >>>> >>>> >>>> Best regards, >>>> Alex soto >>>> >>>> >>>> >>>> >>>>> On Dec 4, 2020, at 6:56 AM, Tim Ward <[email protected] >>>>> <mailto:[email protected]>> wrote: >>>>> >>>>> Hi Alex, >>>>> >>>>> I think that the misunderstanding is that JAX-RS wasn’t conceived, or >>>>> designed, to build on top of Servlets. JAX-RS is its own separate >>>>> specification, and it’s perfectly possible to run a JAX-RS container >>>>> without a Servlet runtime (most JAX-RS implementations provide ways of >>>>> doing this). That being said, due to the prevalence of Servlet Containers >>>>> one of the most common ways to host a JAX-RS container is by using a >>>>> Servlet Container to provide the HTTP connection. For this reason most >>>>> JAX-RS providers include a “gateway servlet” which can be used to host a >>>>> JAX-RS runtime within a servlet container. >>>>> >>>>> The JAX-RS and Servlet specifications are also both part of Jakarta EE, >>>>> which is why the JAX-RS specification includes the one small link to the >>>>> Servlet specification, that is using @Context to inject an >>>>> HttpServletRequest. This feature will only work if your JAX-RS runtime is >>>>> running within a Servlet Container, and so technically isn’t 100% >>>>> portable. It’s pretty rare, however, to see a production JAX-RS container >>>>> that isn’t using a Servlet Container to provide the HTTP layer. >>>>> >>>>> I’m hoping that this helps to clear up some of the confusion, none of >>>>> which is within the control of OSGi, Aries JAX-RS or PAX-Web I’m afraid. >>>>> >>>>> All the best, >>>>> >>>>> Tim >>>>> >>>>>> On 3 Dec 2020, at 20:13, Jean-Baptiste Onofre <[email protected] >>>>>> <mailto:[email protected]>> wrote: >>>>>> >>>>>> The annotation should not be required for JAXRS (@Consume and @Producer >>>>>> should be used). >>>>>> >>>>>> So, as said, I gonna enhance the Karaf rest example with multipart. But >>>>>> tomorrow my time ;) >>>>>> >>>>>> Regards >>>>>> JB >>>>>> >>>>>>> Le 3 déc. 2020 à 19:02, Alex Soto <[email protected] >>>>>>> <mailto:[email protected]>> a écrit : >>>>>>> >>>>>>> I hear you Tim, and I appreciate you taking a moment to help me. >>>>>>> >>>>>>> I really am no expert on the the inner workings of these technologies >>>>>>> (merely trying to move forward my application), but it seems to me that >>>>>>> if JAX-RS was conceived to work on top of Servlet, there should have >>>>>>> been a way to pass down configuration from the upper layer (JAX-RS) >>>>>>> down to the lower layer (Servlet), don’t you think? >>>>>>> >>>>>>> Specifically, a Servlet can be customized by the @MultipartConfig >>>>>>> annotation, but the ability to pass this down from JAX-RS is not there, >>>>>>> or at least, not clear enough. >>>>>>> >>>>>>> Best regards, >>>>>>> Alex soto >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>>> On Dec 3, 2020, at 12:32 PM, Tim Ward <[email protected] >>>>>>>> <mailto:[email protected]>> wrote: >>>>>>>> >>>>>>>> As with most Open Source Software efforts, it’s an all volunteer army. >>>>>>>> I haven’t personally needed to use file upload with JAX-RS, and it’s >>>>>>>> possible that few of the other users of Aries JAX-RS have either. At >>>>>>>> least one person seems to have it working (based on the GitHub bug >>>>>>>> you’ve seen), but they didn’t contribute an example or any >>>>>>>> documentation improvements. >>>>>>>> >>>>>>>> As for the main issue - Multipart upload like this isn’t really >>>>>>>> supported by JAX-RS. You’re having to fall back to support in the >>>>>>>> Servlet API, which means you’re not really using JAX-RS to do it. The >>>>>>>> problems that you’re now encountering are “how do I enable multipart >>>>>>>> for the servlet hosting my JAX-RS application. In the past (the GitHub >>>>>>>> bug) it has been sufficient to configure the JAX-RS whiteboard >>>>>>>> instance to add the “enable multipart” property from the OSGi Http >>>>>>>> Whiteboard specification. At that point all of the multipart wizardry >>>>>>>> is being handled by the Http Whiteboard and Aries JAX-RS has nothing >>>>>>>> to do with it. >>>>>>>> >>>>>>>> I would recommend trying to deploy your JAX-RS resource (without the >>>>>>>> application and application select filter if you can) into a plain >>>>>>>> OSGi framework using the OSGi Http Whiteboard reference implementation >>>>>>>> (from Felix), and the Aries JAX-RS whiteboard configured to enable >>>>>>>> multipart. If this doesn’t work then the answer lies somewhere in >>>>>>>> Aries, and is a regression since the bug was written. If it does work >>>>>>>> then this points the finger either at something more complex in the >>>>>>>> application code, or at PAX-Web. >>>>>>>> >>>>>>>> All the best, >>>>>>>> >>>>>>>> Tim >>>>>>>> >>>>>>>>> On 3 Dec 2020, at 17:12, Alex Soto <[email protected] >>>>>>>>> <mailto:[email protected]>> wrote: >>>>>>>>> >>>>>>>>> Hi Tim, >>>>>>>>> >>>>>>>>> Thank you for the feedback. Yes, I understand the @MultipartConfig >>>>>>>>> is in the Servlet Spec, I only added it at the suggestion of others >>>>>>>>> in this thread. It clearly is not doing anything, as you say. >>>>>>>>> >>>>>>>>> Regarding the @Protected annotation, it is irrelevant to the problem, >>>>>>>>> that is just a name binding annotation to activate a security filter. >>>>>>>>> >>>>>>>>> Elsewhere I read that property >>>>>>>>> osgi.http.whiteboard.servlet.multipart.enabled=true would enable the >>>>>>>>> multi part support, but this is not working for me. I also tried >>>>>>>>> prefixing it with “servlet.init.”, as suggested, and it still does >>>>>>>>> not work. I tried these properties both in my custom JAX-RS >>>>>>>>> Application configuration PID, and in the >>>>>>>>> org.apache.aries.jax.rs.whiteboard.default, same result. >>>>>>>>> >>>>>>>>> Really, I did not expect this to be this obscure, I have not seen any >>>>>>>>> documentation at all covering file uploads in the JAX-RS Whiteboard >>>>>>>>> Specification, or in the Aries web site. Is file upload such an >>>>>>>>> obscure use case to not merit coverage in the examples and >>>>>>>>> documentation? >>>>>>>>> >>>>>>>>> >>>>>>>>> Best regards, >>>>>>>>> Alex soto >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>>> On Dec 3, 2020, at 11:23 AM, Tim Ward <[email protected] >>>>>>>>>> <mailto:[email protected]>> wrote: >>>>>>>>>> >>>>>>>>>> Hello, >>>>>>>>>> >>>>>>>>>> Having seen the class included in this email chain I can see that >>>>>>>>>> your example is actually quite complex, and that a couple of things >>>>>>>>>> you’re trying to do may not be working as you expect: >>>>>>>>>> >>>>>>>>>> Firstly, the @MultipartConfig annotation is from the Servlet >>>>>>>>>> specification, and has no meaning in JAX-RS. The JAX-RS whiteboard >>>>>>>>>> will therefore not do anything with the annotation. The annotation >>>>>>>>>> also has no meaning as part of a DS component, and will not result >>>>>>>>>> in any service or configuration properties being set. Anything that >>>>>>>>>> you want to achieve using this annotation will therefore most likely >>>>>>>>>> not work. >>>>>>>>>> >>>>>>>>>> Secondly, you make use of an annotation @Protected, but this isn’t >>>>>>>>>> listed in your imports. It’s not an annotation that I recognise from >>>>>>>>>> the JAX-RS or JAX-RS whiteboard specifications, so it’s possible >>>>>>>>>> that this annotation is also not doing anything. >>>>>>>>>> >>>>>>>>>> Thirdly, you are making use of the @JaxrsApplicationSelect >>>>>>>>>> annotation - this means that your JAX-RS resource will *probably* >>>>>>>>>> not target the default application (I can’t be sure because the >>>>>>>>>> selection filter you are using isn’t shown). If your resource isn’t >>>>>>>>>> targeting the default application then it may also not be targeting >>>>>>>>>> the default JAX-RS whiteboard. If this is the case then the >>>>>>>>>> whiteboard configuration you will need to set will *not* be the one >>>>>>>>>> with pid org.apache.aries.jax.rs.whiteboard.default, but using the >>>>>>>>>> factory pid that you used to create that whiteboard. >>>>>>>>>> >>>>>>>>>> Fourthly, the exception that you’re describing shows up on google as >>>>>>>>>> being an issue people have had when using Jetty generally. Are you >>>>>>>>>> certain that Jetty is correctly configured? >>>>>>>>>> >>>>>>>>>> Fifthly, have you inspected your running framework to see: >>>>>>>>>> Generic: The actual service properties on your JAX-RS resource >>>>>>>>>> Generic: Which application your JAX-RS resource has been bound to, >>>>>>>>>> and what service properties it has >>>>>>>>>> Generic: Which JAX-RS whiteboard your application has been bound to, >>>>>>>>>> and what service properties it has >>>>>>>>>> Aries specific: What the corresponding service properties are for >>>>>>>>>> the Servlet Service and Http Context service corresponding to your >>>>>>>>>> JAX-RS whiteboard >>>>>>>>>> If any of these aren’t as you expect then that will give a better >>>>>>>>>> fix on the problem. >>>>>>>>>> >>>>>>>>>> Finally, you say that you are using PAX-Web. The Aries JAX-RS >>>>>>>>>> whiteboard is designed to work with any compliant implementation of >>>>>>>>>> the OSGi Http Whiteboard >>>>>>>>>> (https://docs.osgi.org/specification/osgi.cmpn/7.0.0/service.http.whiteboard.html >>>>>>>>>> >>>>>>>>>> <https://docs.osgi.org/specification/osgi.cmpn/7.0.0/service.http.whiteboard.html>). >>>>>>>>>> I can’t find this specification referenced anywhere in the PAX-Web >>>>>>>>>> documentation, nor can I find PAX-Web listed as an implementation. >>>>>>>>>> This doesn’t mean that PAX-Web doesn’t support the Http Whiteboard >>>>>>>>>> (it may simply not be documented), but the Aries JAX-RS whiteboard >>>>>>>>>> makes extensive use of features from across the Http Whiteboard >>>>>>>>>> specification. If there are any gaps or incompatibilities in the >>>>>>>>>> PAX-Web support then it’s possible that they’re preventing the >>>>>>>>>> JAX-RS whiteboard from operating properly. Have you tried testing >>>>>>>>>> your JAX-RS resource in a plain OSGi framework using either the >>>>>>>>>> Felix or Equinox Http Whiteboards? If this works then it will narrow >>>>>>>>>> the search space considerably. >>>>>>>>>> >>>>>>>>>> All the best, >>>>>>>>>> >>>>>>>>>> Tim Ward >>>>>>>>>> >>>>>>>>>>> On 3 Dec 2020, at 12:49, Alex Soto <[email protected] >>>>>>>>>>> <mailto:[email protected]>> wrote: >>>>>>>>>>> >>>>>>>>>>> Yes, of course, I will write you to your email. >>>>>>>>>>> >>>>>>>>>>> Best regards, >>>>>>>>>>> Alex soto >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>>> On Dec 3, 2020, at 7:45 AM, Jean-Baptiste Onofre >>>>>>>>>>>> <[email protected] <mailto:[email protected]>> wrote: >>>>>>>>>>>> >>>>>>>>>>>> Hi Alex, >>>>>>>>>>>> >>>>>>>>>>>> Not yet started, I will take investigate tonight. >>>>>>>>>>>> >>>>>>>>>>>> By the way, any chance we can do direct chat together (to move >>>>>>>>>>>> forward faster) ? >>>>>>>>>>>> >>>>>>>>>>>> Regards >>>>>>>>>>>> JB >>>>>>>>>>>> >>>>>>>>>>>>> Le 3 déc. 2020 à 13:34, Alex Soto <[email protected] >>>>>>>>>>>>> <mailto:[email protected]>> a écrit : >>>>>>>>>>>>> >>>>>>>>>>>>> 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] <mailto:[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 >>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>> >>>>>> >>>>> >>>> >>> >
