====== ClassCastException with Apache Karaf and Amdatu Web ====== 2015-06-17 16:43:43,431 | WARN | karaf-sdm/deploy | fileinstall | 7 - org.apache.felix.fileinstall - 3.4.2 | Error while starting bundle: file:/opt/karaf-sdm/deploy/org.amdatu.web.rest.wink-2.0.2.jar org.osgi.framework.BundleException: Activator start error in bundle org.amdatu.web.rest.wink [161]. at org.apache.felix.framework.Felix.activateBundle(Felix.java:2196)[org.apache.felix.framework-4.2.1.jar:] at org.apache.felix.framework.Felix.startBundle(Felix.java:2064)[org.apache.felix.framework-4.2.1.jar:] at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:955)[org.apache.felix.framework-4.2.1.jar:] at org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundle(DirectoryWatcher.java:1245)[7:org.apache.felix.fileinstall:3.4.2] at org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundles(DirectoryWatcher.java:1217)[7:org.apache.felix.fileinstall:3.4.2] at org.apache.felix.fileinstall.internal.DirectoryWatcher.startAllBundles(DirectoryWatcher.java:1207)[7:org.apache.felix.fileinstall:3.4.2] at org.apache.felix.fileinstall.internal.DirectoryWatcher.doProcess(DirectoryWatcher.java:504)[7:org.apache.felix.fileinstall:3.4.2] at org.apache.felix.fileinstall.internal.DirectoryWatcher.process(DirectoryWatcher.java:358)[7:org.apache.felix.fileinstall:3.4.2] at org.apache.felix.fileinstall.internal.DirectoryWatcher.run(DirectoryWatcher.java:310)[7:org.apache.felix.fileinstall:3.4.2] Caused by: java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer at org.apache.felix.dm.ServiceUtil.getRankingAsInteger(ServiceUtil.java:54)[150:org.apache.felix.dependencymanager:3.1.0] at org.apache.felix.dm.ServiceUtil.getRanking(ServiceUtil.java:42)[150:org.apache.felix.dependencymanager:3.1.0] at org.apache.felix.dm.tracker.ServiceTracker$Tracked.setInitial(ServiceTracker.java:1059)[150:org.apache.felix.dependencymanager:3.1.0] at org.apache.felix.dm.tracker.ServiceTracker.open(ServiceTracker.java:371)[150:org.apache.felix.dependencymanager:3.1.0] at org.apache.felix.dm.tracker.ServiceTracker.open(ServiceTracker.java:311)[150:org.apache.felix.dependencymanager:3.1.0] at org.apache.felix.dm.tracker.ServiceTracker.open(ServiceTracker.java:287)[150:org.apache.felix.dependencymanager:3.1.0] at org.apache.felix.dm.impl.dependencies.ServiceDependencyImpl.start(ServiceDependencyImpl.java:419)[150:org.apache.felix.dependencymanager:3.1.0] at org.apache.felix.dm.impl.ComponentImpl.startTrackingOptional(ComponentImpl.java:708)[150:org.apache.felix.dependencymanager:3.1.0] at org.apache.felix.dm.impl.ComponentImpl.bindService(ComponentImpl.java:626)[150:org.apache.felix.dependencymanager:3.1.0] at org.apache.felix.dm.impl.ComponentImpl.access$400(ComponentImpl.java:52)[150:org.apache.felix.dependencymanager:3.1.0] at org.apache.felix.dm.impl.ComponentImpl$7.run(ComponentImpl.java:181)[150:org.apache.felix.dependencymanager:3.1.0] at org.apache.felix.dm.impl.SerialExecutor$1.run(SerialExecutor.java:47)[150:org.apache.felix.dependencymanager:3.1.0] at org.apache.felix.dm.impl.SerialExecutor.scheduleNext(SerialExecutor.java:84)[150:org.apache.felix.dependencymanager:3.1.0] at org.apache.felix.dm.impl.SerialExecutor.access$000(SerialExecutor.java:33)[150:org.apache.felix.dependencymanager:3.1.0] at org.apache.felix.dm.impl.SerialExecutor$1.run(SerialExecutor.java:50)[150:org.apache.felix.dependencymanager:3.1.0] at org.apache.felix.dm.impl.SerialExecutor.scheduleNext(SerialExecutor.java:84)[150:org.apache.felix.dependencymanager:3.1.0] at org.apache.felix.dm.impl.SerialExecutor.execute(SerialExecutor.java:68)[150:org.apache.felix.dependencymanager:3.1.0] at org.apache.felix.dm.impl.ComponentImpl.calculateStateChanges(ComponentImpl.java:231)[150:org.apache.felix.dependencymanager:3.1.0] at org.apache.felix.dm.impl.ComponentImpl.start(ComponentImpl.java:399)[150:org.apache.felix.dependencymanager:3.1.0] at org.apache.felix.dm.DependencyManager.add(DependencyManager.java:169)[150:org.apache.felix.dependencymanager:3.1.0] at org.amdatu.web.rest.wink.Activator.init(Activator.java:52)[161:org.amdatu.web.rest.wink:2.0.2] at org.apache.felix.dm.DependencyActivatorBase.start(DependencyActivatorBase.java:76)[150:org.apache.felix.dependencymanager:3.1.0] at org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:645)[org.apache.felix.framework-4.2.1.jar:] at org.apache.felix.framework.Felix.activateBundle(Felix.java:2146)[org.apache.felix.framework-4.2.1.jar:] The problem is that the OSGi service property ''service.ranking'' **must** be an Integer (not only a number but of **type** Integer). The bundle ''karaf.scr.command'' has a ''service.ranking'' value defined without a specific type (which defaults to a type of ''String''). This caused an error when using the felix depenedency manager which expects an Integer. One solution is to stop the bundle (if you don't need it). Tested with Apache Karaf 3.0.3. {{tag>java osgi karaf}}