Hello JB, II tried the following:
Swagger: force the mvn:io.swagger.core.v3/swagger-jaxrs2/2.1.4 to import javax.servlet* in version range javax.servlet*;version="[0,4.1)" CXF: remove the optional attribute for the osgi.cmpn dependency in the /cxf/rt/transports/http/pom.xml Karaf: getting rid of the throw new UnsupportedOperationException() in the uninstall method of karaf/features/core/src/main/java/org/apache/karaf/features/internal/service/StaticInstallSupport.java The third point was necessary as the feature was uninstalling the org.ops4j.pax.url.wrap bundle during resolution (why it was I know not). Overwriting locally the corresp. artifacts with these three modifications I manage to get around the issue. Obviously this is not a solution to the problem. What would you suggest? Many thanks, Matteo > On 1 Jun 2021, at 10:45, Jean-Baptiste Onofre <j...@nanthrax.net> wrote: > > Hi Matteo, > > As said on the karaf mailing list, I will take a look and keep you posted. > > Regards > JB > >> Le 1 juin 2021 à 10:12, Matteo Rulli <matteo.ru...@gmail.com> a écrit : >> >> I managed to reproduce the error here: >> >> https://github.com/mrulli/karaf-4211-cxf-swagger >> <https://github.com/mrulli/karaf-4211-cxf-swagger> >> >> There is a thread on this subject in the Karaf mailing list as well: >> >> http://karaf.922171.n3.nabble.com/OpenAPI-and-CXF-issues-with-Karaf-4-2-11-td4060159.html >> >> <http://karaf.922171.n3.nabble.com/OpenAPI-and-CXF-issues-with-Karaf-4-2-11-td4060159.html> >> >> Matteo >> >> >> >>> On 31 May 2021, at 12:02, Matteo Rulli <matteo.ru...@gmail.com> wrote: >>> >>> Hello, >>> >>> I recently upgraded from CXF 3.3.2 to 3.4.0 and my rest endpoints stopped >>> to work. I get this error (I’m using Karaf 4.2.11 + Java 8) during pax exam >>> test boot up: >>> >>> org.osgi.service.http.HttpService not found by >>> org.apache.cxf.cxf-rt-transports-http >>> >>> Caused by: java.lang.ClassNotFoundException: >>> org.osgi.service.http.HttpService not found by >>> org.apache.cxf.cxf-rt-transports-http [167] >>> at >>> org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1639) >>> ~[?:?] >>> at >>> org.apache.felix.framework.BundleWiringImpl.access$200(BundleWiringImpl.java:80) >>> ~[?:?] >>> at >>> org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:2053) >>> ~[?:?] >>> at java.lang.ClassLoader.loadClass(ClassLoader.java:357) >>> ~[?:1.8.0_161] >>> at >>> org.apache.cxf.transport.http.osgi.HTTPTransportActivator.start(HTTPTransportActivator.java:62) >>> ~[?:?] >>> >>> I checked the exports and the imports and everything seem fine: >>> >>> karaf@root()> exports -p org.osgi.service.http >>> Package Name │ Version │ ID │ Bundle Name >>> ──────────────────────────────────┼─────────┼─────┼────────────────────────────── >>> org.osgi.service.http.context │ 1.0.0 │ 293 │ >>> org.ops4j.pax.web.pax-web-api >>> org.osgi.service.http.runtime.dto │ 1.0.0 │ 293 │ >>> org.ops4j.pax.web.pax-web-api >>> org.osgi.service.http.runtime │ 1.0.0 │ 293 │ >>> org.ops4j.pax.web.pax-web-api >>> org.osgi.service.http │ 1.2.1 │ 293 │ >>> org.ops4j.pax.web.pax-web-api >>> >>> karaf@root()> imports -p org.osgi.service.http >>> Package │ Version │ Optional │ ID │ Bundle >>> Name >>> ──────────────────────────────────┼───────────────┼──────────┼─────┼────────────────────────────────────── >>> org.osgi.service.http.context │ [1.0.0,2.0.0) │ │ 92 │ >>> flairkit.sc.servlet >>> org.osgi.service.http.runtime.dto │ [1.0.0,2.0.0) │ │ 295 │ >>> org.ops4j.pax.web.pax-web-runtime >>> org.osgi.service.http │ [1.0.0,2.0.0) │ │ 294 │ >>> org.ops4j.pax.web.pax-web-jetty >>> org.osgi.service.http │ [1.0.0,2.0.0) │ │ 295 │ >>> org.ops4j.pax.web.pax-web-runtime >>> org.osgi.service.http │ [1.0.0,2.0.0) │ │ 296 │ >>> org.ops4j.pax.web.pax-web-spi >>> org.osgi.service.http │ [1.2.0,2.0.0) │ resolved │ 168 │ >>> org.apache.cxf.cxf-rt-transports-http >>> org.osgi.service.http │ [1.2.0,2.0.0) │ │ 185 │ >>> org.apache.karaf.http.core >>> >>> And the HttpService seems up and running: >>> >>> karaf@root()> service:list org.osgi.service.http.HttpService >>> [org.osgi.service.http.HttpService, org.ops4j.pax.web.service.WebContainer] >>> --------------------------------------------------------------------------- >>> felix.fileinstall.filename = >>> file.../5e9d5084-f193-4b33-b40f-71b482697646/etc/org.ops4j.pax.web.cfg >>> javax.servlet.context.tempdir = >>> /private/var/folders/dy/xdtn67n929lcfg5kbcwxly6r0000gn/T/.paxweb5610941496959273162 >>> ... >>> service.bundleid = 295 >>> service.id <http://service.id/> = 191 >>> service.pid = org.ops4j.pax.web >>> service.scope = bundle >>> Provided by : >>> OPS4J Pax Web - Runtime (295) >>> Used by: >>> Apache Karaf :: HTTP :: Core (185) >>> >>> I have the impression that the problem could be related to the optional >>> import of the org.osgi.service.http package within the >>> cxf-rt-transports-http manifest but I’m not sure if this is the way to go >>> trying to solve this. >>> >>> Could you please provide help? >>> >>> Thank you, >>> Matteo >>> >>> >> >