Hi, Gert, Thanks for the reply. It now makes sense that each component may provide its own implementation of ComponentResolver interface to resolve its own dependencies.
I check my system. camel-cxf features is installed. The camel-cxf component/bundle is also installed and has the "Active" under "State" and "Created" under "Blueprint" and blank under "Spring". I don't understand the meaning of these states and columns. Does "Created" under "Blueprint" mean that camel-cxf is not ready for service if I use Blueprint? Is there a document on these display? You hit the root of the problem by pointing to the URI. The URI was wrong - I was copy-pasting from a Spring XML configuration, where I globally substituted "cxf", which is Spring's element, to "camel-cxf", which is used by Blueprint for the same. This accidentally also changed the URI from "cxf:bean:<cxfEndpoint>" to "camel-cxf:bean:<cxfEndpoint>"! After fixing the URI, I got over this hurtle - it pass the deployment. Now I'm seeing some running exceptions. I'll deal with it. Yes, you are right. camel-cxf in my system is also 182 and it offers the same URIs and the resolver as you illustrated. Thanks again! Gang ________________________________________ From: Gert Vanthienen [gert.vanthie...@gmail.com] Sent: Friday, January 16, 2015 3:20 AM To: users@servicemix.apache.org Subject: Re: Component dependency resolution issue Hi Gang, That ComponentResolver interface is what Camel uses to discover additional component. In Apache Karaf and ServiceMix, it uses the OSGi Service Registry to find these components. The message you're seeing is an indication that it is unable to find the ComponentResolver for component "camel-cxf" First thing to look at would be the camel-cxf component itself. Is the feature for that component installed? Second problem is the uri prefix you're using in "camel-cxf:bean:helloWorld2Client": the "camel-cxf:" prefix is not registered by default by the camel-cxf component - the URI prefix you need is "cxfbean:". You can check what URI prefixes are offered by a component by using the osgi:ls <bundleid> command. On my system, the Camel CXF component bundle id is 182, so doing an osgi:ls 182 gives me the following output: ... component = [cxfbean, cxf, cxfrs] objectClass = [org.apache.camel.spi.ComponentResolver] service.id = 352 ... Regards, Gert Vanthienen On Thu, Jan 15, 2015 at 10:54 PM, Yang, Gang CTR USARMY (US) <gang.yang....@mail.mil> wrote: > camel-core and camel-blueprint are all installed and active. camel-osgi is > absent from osgi:list and features:list. Does camel-osgi exist? > > Why the log is associating org.apache.camel.spi.ComponentResolver with > camel-cxf? > > Gang > > ________________________________________ > From: seij...@gmail.com [seij...@gmail.com] > Sent: Thursday, January 15, 2015 4:12 PM > To: users@servicemix.apache.org > Cc: users@servicemix.apache.org > Subject: Re: Component dependency resolution issue > > Doesn;t look like you have camel-osgi, camel-core and camel-blueprint > deployed. > > Might have the bundle names wrong but you are missing the camel functionality. > > On Thu, Jan 15, 2015 at 2:07 PM, Yang, Gang CTR USARMY (US) > <gang.yang....@mail.mil> wrote: > >> Hi, >> I have to admit that I'm new to ServiceMix, but this such a simple bundle >> does not work and would appreciate it if someone can help out. >> I'm using ServiceMix 5.3.0. My simple bundle contains a simplest HelloWord >> JAX-WS and a CXF Endpoint on the client side to access the HelloWord >> service. A route is defined for the CXF Endpoint to receive the request >> message content from a file and direct the response message content to >> another file. At least, this is the indent. >> However, after deploying this bundle into the ServiceMix deploy folder, I >> got the following log: >> 2015-01-15 15:48:58,314 | INFO | mix-5.3.0/deploy | fileinstall >> | ? >> ? | 6 - org.apache.felix.fileinstall - 3.4.2 | Installing bundle >> Jaxws-Cxf-Camel / 15.1.30.0 >> 2015-01-15 15:48:58,361 | INFO | mix-5.3.0/deploy | BlueprintContainerImpl >> | ? >> ? | 17 - org.apache.aries.blueprint.core - 1.4.1 | Bundle >> Jaxws-Cxf-Camel is waiting for dependencies [(&(component= >> camel-cxf)(objectClass=org.apache.camel.spi.ComponentResolver))] >> 2015-01-15 15:48:58,361 | INFO | mix-5.3.0/deploy | fileinstall >> | ? >> ? | 6 - org.apache.felix.fileinstall - 3.4.2 | Started bundle: >> file:/C:/Java/apache-servicemix-5.3.0/deploy/Jaxws-Cx >> f-Camel-15.01.30.0.jar >> and the bundle is put in the "GracePeriod" state. If I interpreted the log >> correctly, it seems to say that the dependency >> org.apache.camel.spi.ComponentResolver in component camel-cxf is not >> available. Am I right? >> In fact that I did check my Maven repository that it's the >> org.apache.camel:camel-core that contains the class >> org.apache.camel.spi.ComponentResolver. Why is the framework pointing to >> camel-cxf component? >> My simple bundle did contain org.apache.camel.spi package in the >> Import-Package. Furthermore, I did check that both camel-cxf and camel-core >> are "Active" under the "state" column and camel-cxf has a "Created" under >> the "Blueprint" column while camel-core is blank. What am I doing wrong? >> The following is the content of my blueprint.xml: >> <?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:jaxws="http://cxf.apache.org/blueprint/jaxws" >> xmlns:camel-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 >> http://cxf.apache.org/blueprint/jaxws >> http://cxf.apache.org/schemas/blueprint/jaxws.xsd"> >> >> <jaxws:endpoint id="helloWorld2" >> >> implementor="mil.army.security.ts3.samples.osgi.jaxws.cxf.HelloWorld2Impl" >> address="/TS3HelloWorld2"> >> </jaxws:endpoint> >> <camel-cxf:cxfEndpoint >> xmlns:ts3="http://cxf.jaxws.osgi.samples.ts3.security.army.mil/" >> id="helloWorld2Client" >> address="http://localhost:8181/cxf/HelloWorld2" >> wsdlURL="wsdl/HelloWorld2.wsdl" >> serviceName="ts3:HelloWorldImplService" >> endpointName="ts3:HelloWorldImplPort"> >> <camel-cxf:properties> >> <entry key="dataFormat" value="PAYLOAD"/> >> </camel-cxf:properties> >> </camel-cxf:cxfEndpoint> >> <camelContext xmlns="http://camel.apache.org/schema/blueprint"> >> <route> >> <from uri="file://c:/temp?fileName=HelloWorld2Request.xml"/> >> <inOut uri="camel-cxf:bean:helloWorld2Client"/> >> <to uri="file://c:/temp?fileName=HelloWorld2Response.xml"/> >> </route> >> </camelContext> >> </blueprint> >> Thanks in advance, >> Gang