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

Reply via email to