Hi, I am stuck on a problem with a duplicate jaxb library on the classpath.
Environment: Karaf 4.2.1, Win 7. Somewhere in my custom code I call "FeaturesService#refreshFeatures(EnumSet.noneOf(Option.class))". The FeaturesService is injected by a SCR @Reference annotation. The resulting exception is: java.lang.ClassCastException: org.apache.karaf.features.internal.model.Capability$JaxbAccessorF_value cannot be cast to com.sun.xml.internal.bind.v2.runtime.reflect.Accessor org.apache.karaf.features.internal.service.FeaturesProcessingSerializer.(FeaturesProcessingSerializer.java:80) org.apache.karaf.features.internal.service.FeaturesProcessorImpl.(FeaturesProcessorImpl.java:58) org.apache.karaf.features.internal.service.FeaturesProcessorImpl.(FeaturesProcessorImpl.java:98) org.apache.karaf.features.internal.service.FeaturesProcessorImpl.(FeaturesProcessorImpl.java:106) org.apache.karaf.features.internal.service.FeaturesServiceImpl.refreshFeatures(FeaturesServiceImpl.java:1183) When I call "feature:refresh" on the console: No exception. I googled around and found some threads about this and that I may have a duplicate jaxb lib on the classpath and I should remove all obsolete occurrences. I also found [KARAF-5912] where the jaxb-impl bundle was removed from the "framework" feature. I applied this to my Karaf 4.2.1 and also in all other features of my distribution (Camel e.g.). I removed it also in the startup.properties. Same exception again. Then I found another jaxb-impl-2.2.11.jar in the /lib/boot/ folder. If I remove this - it works! But now my question: Is this the correct way and don't I break something by removing this lib? And how can I remove it from my custom distribution? The karaf-maven-plugin does not have an option to remove libs which are included in the standard Karaf distribution. I didn't know any Maven phases where to hook a file delete after the karaf-maven-plugin did it's work (unless unpacking the zip, delete the file and re-package the stuff). Any ideas? TIA & Regards Volker Althaus CENIT AG, Industriestrasse 52-54, 70565 Stuttgart, Tel.: +49 711 7825-30, Fax: +49 711 7825-4000, Internet: www.cenit.com Geschaeftsstellen (Branch Offices): Berlin, Frankfurt, Hamburg, Hannover, Muenchen, Oelsnitz, Ratingen, Saarbruecken Vorstandsmitglieder (Members of the Board): Kurt Bengel (CEO), Matthias Schmidt (CFO) Aufsichtsratsmitglieder (Supervisory Board Members): Prof. Dr. Oliver Riedel (Vorsitzender des Aufsichtsrats / Chairman of the Supervisory Board), Stephan Gier, Ricardo Malta Bankverbindungen (Bank Accounts): Deutsche Bank (BLZ 600 700 70) Kto. 1661 040 IBAN : DE85 6007 0070 0166 1040 00 SWIFT-CODE : DEUTDESS, Commerzbank (BLZ 600 400 71) Kto. 532 015 500 IBAN : DE83 6004 0071 0532 0155 00 SWIFT-Code : COBADEFF600, Registergericht (Registry court): Amtsgericht Stuttgart Handelsregister (Commercial Register): HRB Nr. 19117 Umsatzsteuer (VAT) ID: DE 147 862 777
