Great. Thank you very much. I dont want to add CXF or Jersey. thank to your answer I have come up with the idea myself to inject the @Context HttpServletRequest into the JaxRS code. To mix in this: https://osgi.org/specification/osgi.cmpn/7.0.0/service.http.whiteboard.html#d0e120961 I didn't test it yet but does it work? I don't see that the aries JaxRs whiteboard impl somewhere defined osgi.http.whiteboard.servlet.multipart.enabled=true
Best regards, Matthias Am Do., 7. Nov. 2019 um 15:38 Uhr schrieb Tim Ward <[email protected]>: > Hi Matthias > > I was a bit confused about how you could add a Servelt to the > JaxRsWhiteboard instead of the HttpWhiteboard for Multi-Part file uploads. > > > I hope it’s now clear that the JAX-RS whiteboard does not support > Servlets. You can either: > > - Register a servlet with the Http Whiteboard and find a place to put > the file > - Handle the multipart file upload using JAX-RS > > > If the file upload is only needed by your JAX-RS components then I would > recommend just using JAX-RS rather than a servlet. > > * So a JaxRsResource can but most not belong to an application? > > > A JAX-RS Whiteboard resource is just a “bare” resource in the service > registry. In the most common case the resource service that you register > will bind to the “default” application provided by the JAX-RS Whiteboard. > There is no need to deploy a custom whiteboard application for resources to > be hosted by the JAX-RS whiteboard. > > * It's fine to put all your Resources into the same JaxRsWhiteboard even > if you could separate them? > > > Yes. This will work fine. All the resources (by default) will get hosted > in the default application. If you do want to provide some isolation > between the resources (e.g. if you need differently configured JSON > providers for different resources) then you can still do this with a single > JAX-RSWhiteboard, but you will need to provide separate Applications for > the resources and extensions. This is because applications within the > whiteboard *are* isolated from each other, and can have different sets of > resources and extensions. > > In general, however, you’re pretty safe just registering all the resources > and extensions that you need directly with the whiteboard using the default > application. > > All the best, > > Tim > > > On 7 Nov 2019, at 12:54, Matthias Leinweber <[email protected]> > wrote: > > Hello Tim, > > thanks for your reply. I get the JaxRS Application thing wrong. I thought > that an application and a JaxRsResource is/can be the same. But obviously, > if you read the documentation correct, then not. > Then it also makes sense to inject the Application with @Context > Applicaiton app into a method. > I had also a misunderstanding with http and jaxrs whiteboard. I was a > bit confused about how you could add a Servelt to the JaxRsWhiteboard > instead of the HttpWhiteboard for Multi-Part file uploads. > I think the default app and the configuration of the default jaxrs > whiteboard caused some confusion for me. > > * So a JaxRsResource can but most not belong to an application? > * It's fine to put all your Resources into the same JaxRsWhiteboard even > if you could separate them? > > right? then I think, I understood the thing and i like it :) > > Best regards > Matthias > > Am Do., 7. Nov. 2019 um 13:24 Uhr schrieb Tim Ward <[email protected]>: > >> in OSGI 6 I think we should be able to use >> @Component(property = {"osgi.jaxrs.name=myApp", >> "osgi.jaxrs.application.base=/foo"}, service = A.class) >> class... >> That does not work or did I misunderstood something? >> >> >> If you want to register an application with the whiteboard then you must >> register it as a javax.ws.rs.core.Application in the service registry. >> This is outlined at https://osgi.org/specification/osgi.cmpou >> cann/7.0.0/service.jaxrs.html#service.jaxrs.application.services >> <https://osgi.org/specification/osgi.cmpn/7.0.0/service.jaxrs.html#service.jaxrs.application.services> >> >> Second how do i create additional Servlets and how do I select them in a >> resource? >> E.g. A configfile/servicepid >> org.apache.aries.jax.rs.whiteboard-bar.cfg >> application.base.prefix=/bar >> should create an additional servlet container? >> >> >> I’m not sure that I totally follow here. It looks like you’re trying to >> create a configuration for another Aries JAX-RS whitboard instance - is >> this really what you want, a second JAX-RS whiteboard? The Aries JAX-RS >> Whiteboard is designed to build on top of a compliant Http Whiteboard, if >> you are actually trying to create another Http Whiteboard (e.g. to get HTTP >> served on another port) then you will need to set that up in PAX-Web. >> >> Then with >> @JaxrsWhiteboardTarget >> or >> "osgi.jaxrs.whiteboard.target=" >> >> I can select the servlet/Whiteboard, but how does the LDAP string look? >> (service.pid=org.apache.aries.jax.rs.whiteboard-bar)? >> >> >> This property only applies if you create more than one JAX-RS whiteboard, >> and would be applied to your JAX-RS Whiteboard services (resources, >> applications, extensions), and you would use the filter to select the >> JAX-RS Whiteboard that you wanted them to use. If you do want to do this, >> which seems unlikely, then you would typically add a marker property into >> the configuration for your JAX-RS Whiteboard and then use that property >> name/value in the filter. >> >> >> Any questions that relate to setting up the Http Whiteboard will need to >> be handled by someone with more PAX-Web experience. I would also recommend >> that, in addition to describing the problems that you’ve encountered, you >> include a description of what you’re trying to achieve with your system. >> >> E.g. >> >> >> - Do you want multiple Http ports being served (this would be Http >> Whiteboard not JAX-RS Whiteboard)? >> - Do you want JAX-RS Whiteboard support on top of one or more of the >> available Http Whiteboards)? >> - Do you want to publish JAX-RS resource services, application >> services, or a mixture of the two? >> - Do you want the JAX-RS services that you publish to appear on all >> whiteboards, or just a subset? >> >> >> With this information it will be much easier to help you to achieve your >> goal. >> >> All the best, >> >> Tim >> >> On 6 Nov 2019, at 17:25, Matthias Leinweber <[email protected]> >> wrote: >> >> Hi JB, >> yes that was my first place to start... really like the examples in the >> source, they are really helpful. >> >> ok: >> Fist thing are JAXRs Applications. In OSGI7 we will use >> @JaxrsName("myApp") >> @JaxrsApplicationBase("foo") >> @Component >> class.... >> >> in OSGI 6 I think we should be able to use >> @Component(property = {"osgi.jaxrs.name=myApp", >> "osgi.jaxrs.application.base=/foo"}, service = A.class) >> class... >> That does not work or did I misunderstood something? >> >> Second how do i create additional Servlets and how do I select them in a >> resource? >> E.g. A configfile/servicepid >> org.apache.aries.jax.rs.whiteboard-bar.cfg >> application.base.prefix=/bar >> should create an additional servlet container? >> >> Then with >> @JaxrsWhiteboardTarget >> or >> "osgi.jaxrs.whiteboard.target=" >> >> I can select the servlet/Whiteboard, but how does the LDAP string look? >> (service.pid=org.apache.aries.jax.rs.whiteboard-bar)? >> >> Best regards, >> Matthias >> >> >> Am Mi., 6. Nov. 2019 um 18:00 Uhr schrieb Jean-Baptiste Onofré < >> [email protected]>: >> >>> Hi Matthias, >>> >>> did you take a look on the Karaf example ? >>> >>> https://github.com/apache/karaf/tree/master/examples/karaf-rest-example >>> >>> It contains different approaches, including whiteboard. >>> >>> Can you describe a bit what you are looking for ? We can then create the >>> Jira at Karaf/Aries to improve example/documentation. >>> >>> Regards >>> JB >>> >>> On 06/11/2019 17:56, Matthias Leinweber wrote: >>> > Hello Karaf Team, >>> > >>> > I know that this not the 100% correct mailing list for aries jax-rs. >>> > However my question is what do you plan for further releases of Karaf? >>> I >>> > try to use the aries implementation but I struggle with the >>> configuration. >>> > Beside the incomplete documentation and the "very special" DSL which is >>> > used I dug into the code and understood the following things. >>> > >>> > * You can not add additional JAXRSApplications. ("osgi.jaxrs.name >>> > <http://osgi.jaxrs.name>=myApp", >>> "osgi.jaxrs.application.base=/approot"} >>> > although there is code which should do this? >>> > * Additional configurations for other then the default servlet is not >>> > possible although there is a service factory manager >>> which should handle >>> > additional configs? >>> > * With org.apache.aries.jax.rs.whiteboard.default.cfg >>> > # application.base.prefix you can add a global url prefix to your >>> > JaxRSResoureces. Would be nice if that could be documented somewhere. >>> > >>> > Don't get me wrong I do not say that the bundle is bad, but at some >>> > point it could be easier to understand. >>> > >>> > regards Matthias >>> > >>> > >>> >>> -- >>> Jean-Baptiste Onofré >>> [email protected] >>> http://blog.nanthrax.net >>> Talend - http://www.talend.com >>> >> >> >> -- >> >> >> > > > >
