Can I see your xbeans.xml ?
You can try to add this line into your xbeans.xml, to let CXF bus load
the jbi transport factory.
<import resource="classpath:META-INF/cxf/cxf-extension-jbi.xml"/>
Willem
Jean-Baptiste Onofré wrote:
Hi,
CXF is not able to find the conduit corresponding to the jbi namespace.
Could you provide your pom.xml to check dependencies ?
Regards
JB
jcamus wrote:
Hi!
I am trying to create dynamically a CXF-SE proxy into a given pojo class
(definied into a Servicemix BEAN-SU).
I want to call a method of the service FileRepository with
IFileRepository
defining all the methods.
Here is the code :
private void testProxy(ExternalReferencialExportBo referencialExportBo)
throws Exception {
String namespace =
"http://filerepository.esb.transfolio.parkeon.com";
String portName = "IFileRepository";
String serviceName = "FileRepositoryService";
//QName port = new QName(namespace, portName);
QName service = new QName(namespace, serviceName);
JaxWsProxyFactoryBean cf = new JaxWsProxyFactoryBean();
cf.setServiceName(service);
cf.setServiceClass(IFileRepository.class);
cf.setAddress("jbi://" + new
IdGenerator().generateSanitizedId());
cf.setBindingId(org.apache.cxf.binding.jbi.JBIConstants.NS_JBI_BINDING);
Bus bus = BusFactory.getDefaultBus();
JBITransportFactory jbiTransportFactory =
(JBITransportFactory) bus
.getExtension(ConduitInitiatorManager.class)
.getConduitInitiator(CxfSeComponent.JBI_TRANSPORT_ID);
jbiTransportFactory.setDeliveryChannel(m_channel);
m_fileRepository = (IFileRepository) cf.create();
m_fileRepository.setExportConfig(1,
referencialExportBo.getExportId(),
referencialExportBo.getConfigTypeName(),
referencialExportBo.getConfigTypeCode(),
referencialExportBo.getVersionLabel());
}
When a message is received by my pojo class and I call this method I have
the following error reported into SMX console :
DEBUG - DeliveryChannelImpl - Notified:
ID:192.168.79.203-123c31d621d-5:2(6144f) in
DeliveryChannel{servicemix-jms}
from sendSync
org.apache.cxf.BusException: No conduit initiator was found for the
namespace http://cxf.apache.org/transports/jbi.
at
org.apache.cxf.transport.ConduitInitiatorManagerImpl.getConduitInitiator(ConduitInitiatorManagerImpl.java:102)
at
com.parkeon.transfolio.esb.exportation.AbstractReferencialExporter.testProxy(AbstractReferencialExporter.java:90)
at
com.parkeon.transfolio.esb.exportation.AbstractReferencialExporter.onMessageExchange(AbstractReferencialExporter.java:69)
at
org.apache.servicemix.bean.BeanEndpoint.onProviderExchange(BeanEndpoint.java:230)
at
org.apache.servicemix.bean.BeanEndpoint.process(BeanEndpoint.java:217)
at
org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:627)
at
org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:581)
at
org.apache.servicemix.common.AsyncBaseLifeCycle.onMessageExchange(AsyncBaseLifeCycle.java:535)
at
org.apache.servicemix.common.SyncLifeCycleWrapper.onMessageExchange(SyncLifeCycleWrapper.java:60)
at
org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:623)
at
org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:172)
at
org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:168)
at
org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
at java.lang.Thread.run(Thread.java:619)
Where am I wrong?
Regards.