Services based on servicemix-cxf-se with proxy on smx4/osgi cannot initialize
-----------------------------------------------------------------------------
Key: SMXCOMP-820
URL: https://issues.apache.org/activemq/browse/SMXCOMP-820
Project: ServiceMix Components
Issue Type: Bug
Components: servicemix-cxf-se
Affects Versions: servicemix-xmpp-2010.01
Environment: fuse-esb 4.3
Reporter: Kurt Westerfeld
Our servicemix-cxf-se components use the proxy feature, and are unable to start
when servicemix is restarted. The are receiving an exception I will paste
below.
What looks to be happening is that the
org.apache.servicemix.cxfse.CxfSeProxyFactoryBean is unable to use the injected
component context, and falls into a bit of code that is normally not executed,
related to finding its client factory using JNDI
(java:comp/env/jbi/ClientFactory). If I set a breakpoint on this code, and
unwind the stack one method, I can single step this code and all works fine.
So, it looks like a startup timing issue to me. Comments in the code lead me
to believe that under OSGi this should never happen.
10:25:14,070 | ERROR | xtenderThread-20 | ContextLoaderListener |
BundleApplicationContextListener 50 | 73 - org.springframework.osgi.extender
- 1.2.0 | Application context refresh failed
(OsgiBundleXmlApplicationContext(bundle=merge-service,
config=osgibundle:/META-INF/spring/*.xml))
org.springframework.beans.factory.BeanCreationException: Error creating bean
with name 'org.apache.servicemix.cxfse.CxfSeEndpoint#0' defined in URL
[bundleentry://224.fwk20591791/META-INF/spring/beans.xml]: Cannot create inner
bean 'com.novell.soa.ccm.merge.impl.MergeService#0' of type
[com.novell.soa.ccm.merge.impl.MergeService] while setting bean property
'pojo'; nested exception is
org.springframework.beans.factory.BeanCreationException: Error creating bean
with name 'com.novell.soa.ccm.merge.impl.MergeService#0' defined in URL
[bundleentry://224.fwk20591791/META-INF/spring/beans.xml]: Cannot create inner
bean 'cxfse:proxy#13a5041' of type
[org.apache.servicemix.cxfse.CxfSeProxyFactoryBean] while setting bean property
'web2Connect'; nested exception is
org.springframework.beans.factory.BeanCreationException: Error creating bean
with name 'cxfse:proxy#13a5041': FactoryBean threw exception on object
creation; nested exception is javax.naming.NotContextException:
java:comp/env/jbi/ClientFactory
at
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBean(BeanDefinitionValueResolver.java:281)[60:org.springframework.beans:3.0.3.RELEASE]
at
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:120)[60:org.springframework.beans:3.0.3.RELEASE]
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1317)[60:org.springframework.beans:3.0.3.RELEASE]
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1076)[60:org.springframework.beans:3.0.3.RELEASE]
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517)[60:org.springframework.beans:3.0.3.RELEASE]
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)[60:org.springframework.beans:3.0.3.RELEASE]
at
org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291)[60:org.springframework.beans:3.0.3.RELEASE]
at
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)[60:org.springframework.beans:3.0.3.RELEASE]
at
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288)[60:org.springframework.beans:3.0.3.RELEASE]
at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190)[60:org.springframework.beans:3.0.3.RELEASE]
at
org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:574)[60:org.springframework.beans:3.0.3.RELEASE]
at
org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:895)[62:org.springframework.context:3.0.3.RELEASE]
at
org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.access$1600(AbstractDelegatedExecutionApplicationContext.java:69)[72:org.springframework.osgi.core:1.2.0]
at
org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext$4.run(AbstractDelegatedExecutionApplicationContext.java:355)[72:org.springframework.osgi.core:1.2.0]
at
org.springframework.osgi.util.internal.PrivilegedUtils.executeWithCustomTCCL(PrivilegedUtils.java:85)[72:org.springframework.osgi.core:1.2.0]
at
org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.completeRefresh(AbstractDelegatedExecutionApplicationContext.java:320)[72:org.springframework.osgi.core:1.2.0]
at
org.springframework.osgi.extender.internal.dependencies.startup.DependencyWaiterApplicationContextExecutor$CompleteRefreshTask.run(DependencyWaiterApplicationContextExecutor.java:136)[73:org.springframework.osgi.extender:1.2.0]
at java.lang.Thread.run(Thread.java:619)[:1.6.0_18]
Caused by: org.springframework.beans.factory.BeanCreationException: Error
creating bean with name 'com.novell.soa.ccm.merge.impl.MergeService#0' defined
in URL [bundleentry://224.fwk20591791/META-INF/spring/beans.xml]: Cannot create
inner bean 'cxfse:proxy#13a5041' of type
[org.apache.servicemix.cxfse.CxfSeProxyFactoryBean] while setting bean property
'web2Connect'; nested exception is
org.springframework.beans.factory.BeanCreationException: Error creating bean
with name 'cxfse:proxy#13a5041': FactoryBean threw exception on object
creation; nested exception is javax.naming.NotContextException:
java:comp/env/jbi/ClientFactory
at
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBean(BeanDefinitionValueResolver.java:281)[60:org.springframework.beans:3.0.3.RELEASE]
at
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:120)[60:org.springframework.beans:3.0.3.RELEASE]
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1317)[60:org.springframework.beans:3.0.3.RELEASE]
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1076)[60:org.springframework.beans:3.0.3.RELEASE]
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517)[60:org.springframework.beans:3.0.3.RELEASE]
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)[60:org.springframework.beans:3.0.3.RELEASE]
at
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBean(BeanDefinitionValueResolver.java:270)[60:org.springframework.beans:3.0.3.RELEASE]
... 17 more
Caused by: org.springframework.beans.factory.BeanCreationException: Error
creating bean with name 'cxfse:proxy#13a5041': FactoryBean threw exception on
object creation; nested exception is javax.naming.NotContextException:
java:comp/env/jbi/ClientFactory
at
org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:149)[60:org.springframework.beans:3.0.3.RELEASE]
at
org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getObjectFromFactoryBean(FactoryBeanRegistrySupport.java:109)[60:org.springframework.beans:3.0.3.RELEASE]
at
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBean(BeanDefinitionValueResolver.java:274)[60:org.springframework.beans:3.0.3.RELEASE]
... 23 more
Caused by: javax.naming.NotContextException: java:comp/env/jbi/ClientFactory
at
org.apache.xbean.naming.context.AbstractContext.lookup(AbstractContext.java:171)[77:org.apache.servicemix.naming:1.3.0.fuse-01-00]
at
org.apache.xbean.naming.context.AbstractContext.lookup(AbstractContext.java:611)[77:org.apache.servicemix.naming:1.3.0.fuse-01-00]
at
org.apache.servicemix.naming.InitialContextWrapper.lookup(InitialContextWrapper.java:173)[77:org.apache.servicemix.naming:1.3.0.fuse-01-00]
at
javax.naming.InitialContext.lookup(InitialContext.java:392)[:1.6.0_18]
at
org.apache.servicemix.cxfse.CxfSeProxyFactoryBean.getInternalContext(CxfSeProxyFactoryBean.java:186)[154:servicemix-cxf-se:2010.02.0.fuse-01-00]
at
org.apache.servicemix.cxfse.CxfSeProxyFactoryBean.createProxy(CxfSeProxyFactoryBean.java:110)[154:servicemix-cxf-se:2010.02.0.fuse-01-00]
at
org.apache.servicemix.cxfse.CxfSeProxyFactoryBean.getObject(CxfSeProxyFactoryBean.java:94)[154:servicemix-cxf-se:2010.02.0.fuse-01-00]
at
org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:142)[60:org.springframework.beans:3.0.3.RELEASE]
... 25 more
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.