Hello, I'm trying to upgrade from Karaf 4.2.8 to 4.3.3.
With 4.2.8 I was able to place the required Oracle driver to the deploy-folder and do a "feature:install pax-jdbc-oracle". With 4.3.3 it seems to be a little bit different. When I place the ojdbc6.jar or ojdbc7.jar or ojdbc8.jar in the deploy folder I will get the error below (at the end) after "feature:install pax-jdbc-oracle". It works when I do not place a specific Oracle driver to the deploy folder and just do "feature:install pax-jdbc-oracle". In this case it installs the latest Oracle driver by using maven. This is different to 4.2.8 and not the expected behaviour. IMO the latest Oracle driver cannot be used for all Oracle versions. Even Oracle provides specific downloads of their JDBC driver for different DB versions: https://www.oracle.com/de/database/technologies/appdev/jdbc-downloads.html In the ops4j features.xml file details is written, that "This feature requires actual Oracle JDBC driver installed", which conflicts with the auto bundle dependency installation of the latest Oracle driver. This line does not exist in 4.2.8. <feature name="pax-jdbc-oracle" description="Provides JDBC Oracle DataSourceFactory" version="${project.version}"> <details>This feature requires actual Oracle JDBC driver installed</details> <feature>pax-jdbc-spec</feature> <bundle dependency="true">wrap:mvn:com.oracle.database.jdbc/ojdbc8/${version.com.oracle.database.jdbc}</bundle> <bundle>mvn:org.ops4j.pax.jdbc/pax-jdbc-oracle/${project.version}</bundle> </feature> Is there a reason why the latest and not with all Oracle versions compatible driver gets installed? Am I able to install somehow a different version of the Oracle driver? All the best, Oliver karaf@root()> feature:install pax-jdbc-oracle org.apache.karaf.features.internal.util.MultiException: Error restarting bundles: Activator start error in bundle org.ops4j.pax.jdbc.oracle [223]. at org.apache.karaf.features.internal.service.Deployer.deploy(Deployer.java:1049) at org.apache.karaf.features.internal.service.FeaturesServiceImpl.doProvision(FeaturesServiceImpl.java:1069) at org.apache.karaf.features.internal.service.FeaturesServiceImpl.lambda$doProvisionInThread$13(FeaturesServiceImpl.java:1004) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:829) Suppressed: org.osgi.framework.BundleException: Activator start error in bundle org.ops4j.pax.jdbc.oracle [223]. at org.apache.felix.framework.Felix.activateBundle(Felix.java:2452) at org.apache.felix.framework.Felix.startBundle(Felix.java:2308) at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:998) at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:984) at org.apache.karaf.features.internal.service.BundleInstallSupportImpl.startBundle(BundleInstallSupportImpl.java:165) at org.apache.karaf.features.internal.service.FeaturesServiceImpl.startBundle(FeaturesServiceImpl.java:1160) at org.apache.karaf.features.internal.service.Deployer.deploy(Deployer.java:1041) ... 6 more Caused by: java.lang.NoClassDefFoundError: oracle/jdbc/internal/Monitor at java.base/java.lang.ClassLoader.defineClass1(Native Method) at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1017) at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.defineClass(BundleWiringImpl.java:2312) at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.defineClassParallel(BundleWiringImpl.java:2130) at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.findClass(BundleWiringImpl.java:2064) at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1533) at org.apache.felix.framework.BundleWiringImpl.access$300(BundleWiringImpl.java:78) at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1950) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522) at org.apache.felix.framework.BundleWiringImpl.getClassByDelegation(BundleWiringImpl.java:1343) at org.apache.felix.framework.BundleWiringImpl.searchImports(BundleWiringImpl.java:1586) at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1516) at org.apache.felix.framework.BundleWiringImpl.access$300(BundleWiringImpl.java:78) at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1950) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522) at org.ops4j.pax.jdbc.oracle.impl.Activator.start(Activator.java:29) at org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:698) at org.apache.felix.framework.Felix.activateBundle(Felix.java:2402) ... 12 more Caused by: java.lang.ClassNotFoundException: oracle.jdbc.internal.Monitor not found by ojdbc7.jar [222] at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1565) at org.apache.felix.framework.BundleWiringImpl.access$300(BundleWiringImpl.java:78) at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1950) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522) at org.apache.felix.framework.BundleWiringImpl.getClassByDelegation(BundleWiringImpl.java:1343) at org.apache.felix.framework.BundleWiringImpl.searchImports(BundleWiringImpl.java:1586) at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1516) at org.apache.felix.framework.BundleWiringImpl.access$300(BundleWiringImpl.java:78) at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1950) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522) ... 30 more Error executing command: Error restarting bundles: Activator start error in bundle org.ops4j.pax.jdbc.oracle [223].