Я думаю, что "два определения класса BusFactory" - это красная сельдь.
Не уверен, какую версию CXF вы используете (предположим, что 2.4.2), но этот код пытается выполнять такие вещи, как ServiceLoader, используя загрузчик классов контекста потока при поиске реализаций подкласса.
Мое лучшее предположение - какая-то «магия» Spring, на которую опирается CXF, и вы упускаете комплект, который ее предоставляет. Рассматривая функцию CXF для Karaf, она имеет множество зависимостей, проверьте это и убедитесь, что вы их все получили - на данный момент может быть проще попробовать это с помощью karaf с установленной функцией CXF.
Если вы используете maven, к файлу функций можно получить доступ с помощью:
<dependency>
<groupId>org.apache.cxf.karaf</groupId>
<artifactId>apache-cxf</artifactId>
<version>2.4.2</version>
<type>xml</type>
<classifier>features</classifier>
</dependency>
Некоторая документация по конфигурации шины здесь