One Star

Problem deploying route using CXF in karaf 4

Hi,
I'm in the middle of a migration process from Talend ESB v5.3.1 to v6.1.1 and experiencing a problem with one of my routes developped with the Studio. This route uses a cCXF component that was working fine in Karaf in v5.3.1, but now not deploying anymore.
The route builds well in Studio, but the route.kar gives the following error when deploying in /deploy :
2016-05-10 11:45:59,400 | WARN  | SpringOsgiExtenderThread-427 | org.apache.cxf.common.logging.LogUtils  449 | 102 - org.apache.cxf.cxf-core - 3.1.4 | Initial attempt to create application context was unsuccessful.
org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource ; nested exception is java.io.FileNotFoundException: class path resource cannot be opened because it does not exist

Indeed the repository META-INF/cxf/ in the jar (in the kar) is not present.
I read that with recent cxf version (>2.4.0, my case), the extensions are loaded automatically by CXF, but it seems i'm missing something... i tried to add cxf-core-3.1.4.jar as a dependency in a cConfig component, without success. Is there anything to do in Karaf to allow deployment ? (feature cxf v3.1.4 is already started in Karaf...)
Can someone help me ?
Thank you,
10 REPLIES
Moderator

Re: Problem deploying route using CXF in karaf 4

Hi,
Have you already checked documents about:TalendHelpCenter:Identify required external modules and TalendHelpCenter:Install external modules?
Best regards
Sabrina
--
Don't forget to give kudos when a reply is helpful and click Accept the solution when you think you're good with it.
One Star

Re: Problem deploying route using CXF in karaf 4

Hi,
Have you already checked documents about:TalendHelpCenter:Identify+required+external+modules and TalendHelpCenter:Install+external+modules?
Best regards
Sabrina

Thank you for your answer. The documents are checked and i've installed all missing modules, but the result is still the same.
Is it normal the META-INF/cxf repository is missing in the jar when cCXF is used ?
Employee

Re: Problem deploying route using CXF in karaf 4

Pierre,
Are you trying to deploy the route (kar) as is? That won't work. You will have to rebuild with Talend 6.1, create a new kar and deploy that.
Thomas
Thomas Steinborn
VP Product Management
Employee

Re: Problem deploying route using CXF in karaf 4

This "WARN" happens sometimes but not always, it's something output intermediate when deploy/install the kar/features, but as I see it's hurtless to the functionality, the kar should then got "Active" status finally.
One Star

Re: Problem deploying route using CXF in karaf 4

Pierre,
Are you trying to deploy the route (kar) as is? That won't work. You will have to rebuild with Talend 6.1, create a new kar and deploy that.
Thomas

Hi Thomas,
Yes of course, I've rebuilt the KAR in TOS V6.
Pierre.
One Star

Re: Problem deploying route using CXF in karaf 4

This "WARN" happens sometimes but not always, it's something output intermediate when deploy/install the kar/features, but as I see it's hurtless to the functionality, the kar should then got "Active" status finally.

Hi xldai,
Thats' true, the kar's status is Active... but the tests fail, whereas the very exactly same tests are OK with Talend V5.3.
The configuration of cCXF is different between TOS V5 and TOS V6, and I'm almost sure that the migration process of my route has failed. I'll try to remake that route from the begining in TOS V6 to see if the problem is still there.
Pierre.
One Star

Re: Problem deploying route using CXF in karaf 4

Hi,
I have the same problem - I have a new simple route (created in TOS v6.1.1) with two cCXF components and deploying generates that WARN log:
11:47:58,942 | WARN  | ExtenderThread-8 | ache.cxf.common.logging.LogUtils  449 | 87 - org.apache.cxf.cxf-core - 3.1.4 | Initial attempt to create application context was unsuccessful.
org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource ; nested exception is java.io.FileNotFoundException: class path resource cannot be opened because it does not exist
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:342)
at org.apache.cxf.bus.spring.ControlledValidationXmlBeanDefinitionReader.internalLoadBeanDefinitions(ControlledValidationXmlBeanDefinitionReader.java:154)
at org.apache.cxf.bus.spring.ControlledValidationXmlBeanDefinitionReader.access$000(ControlledValidationXmlBeanDefinitionReader.java:66)
at org.apache.cxf.bus.spring.ControlledValidationXmlBeanDefinitionReader$1.run(ControlledValidationXmlBeanDefinitionReader.java:141)
at org.apache.cxf.bus.spring.ControlledValidationXmlBeanDefinitionReader$1.run(ControlledValidationXmlBeanDefinitionReader.java:139)
at java.security.AccessController.doPrivileged(Native Method)
at org.apache.cxf.bus.spring.ControlledValidationXmlBeanDefinitionReader.loadBeanDefinitions(ControlledValidationXmlBeanDefinitionReader.java:139)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:303)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:174)
at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:123)
at org.apache.cxf.bus.spring.BusApplicationContext.loadBeanDefinitions(BusApplicationContext.java:334)
at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:130)
at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:539)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:451)
at org.apache.cxf.bus.spring.BusApplicationContext$1.run(BusApplicationContext.java:106)
at org.apache.cxf.bus.spring.BusApplicationContext$1.run(BusApplicationContext.java:104)
at java.security.AccessController.doPrivileged(Native Method)
at org.apache.cxf.bus.spring.BusApplicationContext.<init>(BusApplicationContext.java:104)
...etc...
Even though WARN was appeared, route si active and seems functional.
Everything is Ok in TOS, no changes in Spring config file or in Dependencies tab (default settings of a new route).
Please, any ideas how to fix problem with missing cxf.xml?
One Star

Re: Problem deploying route using CXF in karaf 4

I confirm this WARN has no impact on functionality of my service. The technique test was failling because of another problem that has been fixed.
Thank you for your help.
Pierre.
One Star

Re: Problem deploying route using CXF in karaf 4

Hello
I face exactly the same issue, with a route using a cxf and created with latest Talend OS for ESB 6.3.0.
On some karaf servers, this warning message has no impact and the route works fine.
On some other karaf servers (and I can't figure out the difference) in the Karaf console, a "bundle:install myroute" or "bundle:restart myroute" shows error "Could not find the context DEV" (where DEV is the context defined in /etc/myroute.cfg  line "context = DEV").
This is critical as the context is really not found and the route does not work. I add a small check in a cProcessor to print some context variables and on thoses servers they are null.
In the Karaf web OSGi console, I CAN see the deployed contexts for this route, 1 per talend context, I can see "myroute.talendcontext.DEV" so why can't Karaf find it ?
Any help is much appreciated, we're stuck on this.
Thanks
Loko
One Star

Re: Problem deploying route using CXF in karaf 4

Hello, 
We have the same problem : 
org.apache.cxf.cxf-core - 3.1.7 | Initial attempt to create application context was unsuccessful.
org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource ; nested exception is java.io.FileNotFoundException: class path resource cannot be opened because it does not exist
Best regards