Search code examples
apache-camelapache-karafjbossfuseblueprint-osgicamel-cxf

Waiting for namespace handlers


I'm upgrading to Fuse 7.3 and getting new errors in any routes that use CXF.

  Blueprint bundle ruleEngineService/5.0.2 is waiting for namespace
  handlers [http://camel.apache.org/schema/blueprint]

My blueprint.xml contains the correct schema locations, according to all the documentation. eg. link

<?xml version="1.0" encoding="UTF-8"?>
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.0.0"
xmlns:tx="http://aries.apache.org/xmlns/transactions/v1.2.0"
xmlns:camel="http://camel.apache.org/schema/blueprint"
xmlns:cxf="http://camel.apache.org/schema/blueprint/cxf"

xsi:schemaLocation="
http://www.osgi.org/xmlns/blueprint/v1.0.0 http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd"> 

I haven't changed much since it was working in Fuse 7.0.0.

Features are installed:

  cxf                                      | 3.2.7.fuse-731004-redhat-00003  | x        | Started     | cxf-3.2.7.fuse-731004-redhat-00003            |

  camel-cxf                                | 2.21.0.fuse-731003-redhat-00003 | x        | Started     | camel-2.21.0.fuse-731003-redhat-00003         |

The things that set this blueprint apart from ones that are resolving are:

<cxf:cxfEndpoint id="myEndpoint" ...>

and

<bean id="myRoute" class="com.application.CxfCamelRoute" />

<camelContext xmlns="http://camel.apache.org/schema/blueprint" id="serviceRoutes">
    <routeBuilder ref="myRoute" />
</camelContext>

where CxfCamelRoute contains a reference to cxf://bean:myEndpoint?serviceClass="..."

Regarding blueprint features:

admin@root()> features:list | grep blueprint
kie-aries-blueprint                      | 7.11.0.Final                    |          | Uninstalled | karaf-features-core-droolsjbpm-7.11.0.Final   | KIE Aries Blueprint
camel-blueprint                          | 2.23.2.fuse-740006              |          | Uninstalled | camel-2.23.2.fuse-740006                      |
camel-blueprint                          | 2.21.0.fuse-731003-redhat-00003 | x        | Started     | camel-2.21.0.fuse-731003-redhat-00003         |
aries-blueprint-spring                   | 4.3.20.RELEASE_1                |          | Uninstalled | spring-legacy-4.2.0.fuse-731003-redhat-00003  |
aries-blueprint                          | 4.2.0.fuse-731003-redhat-00003  | x        | Started     | standard-4.2.0.fuse-731003-redhat-00003       | Aries Blueprint

Could it be a conflict between aries-blueprint and camel-blueprint?

I am running out of ideas.


Solution

  • Ok, I seem to have solved it.

    I added the repo for KIE (features:addurl mvn:org.kie/kie-karaf-features/7.11.0.Final/xml/features) before doing anything else. The order change fixed my issue. It seems as though KIE 7.11.0.Final adds the following repos:

    mvn:org.apache.camel.karaf/apache-camel/RELEASE/xml/features
    mvn:org.apache.cxf.karaf/apache-cxf/3.2.7.fuse-sb2-740011/xml/features
    

    The namehandler issue was presumably from some conflict between the Fuse 7.3 libraries, and the latest camel/cxf RELEASE versions.

    To me, this feels like a bug, to have KIE 7.11.0.Final use RELEASE features. It clearly has bad consequences. But I don't know another way to make feature:install kie accessible to my Karaf.