It looks like your SEI com.sforce.soap.enterprise.Soap doesn't has
enough information for CXF to lookup the services name.
You can specify the serviceName and endpointName in the cxfEndpoint of
salesforceCXFConsumer to fix the error.
Willem
On Fri Mar 16 15:13:48 2012, Castyn wrote:
I have a simple cxf consumer and producer route setup currently, but for some
reason when I go to deploy the route i am getting the following error.
03:07:10,014 | ERROR | xtenderThread-22 | ContextLoaderListener |
? ? | 84 -
org.springframework.osgi.extender - 1.2.1 | Application context refresh
failed (OsgiBundleXmlApplicationContext(bundle=mdm-realtime-route,
config=osgibundle:/META-INF/spring/*.xml))
org.apache.camel.RuntimeCamelException:
org.apache.cxf.service.factory.ServiceConstructionException: Could not find
definition for service {urn:enterprise.soap.sforce.com}SoapService.
at
org.apache.camel.util.ObjectHelper.wrapRuntimeCamelException(ObjectHelper.java:1149)[89:org.apache.camel.camel-core:2.8.0.fuse-01-13]
at
org.apache.camel.spring.SpringCamelContext.onApplicationEvent(SpringCamelContext.java:108)[91:org.apache.camel.camel-spring:2.8.0.fuse-01-13]
at
org.apache.camel.spring.CamelContextFactoryBean.onApplicationEvent(CamelContextFactoryBean.java:240)[91:org.apache.camel.camel-spring:2.8.0.fuse-01-13]
at
org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:97)[75:org.springframework.context:3.0.5.RELEASE]
at
org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:303)[75:org.springframework.context:3.0.5.RELEASE]
at
org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:911)[75:org.springframework.context:3.0.5.RELEASE]
at
org.springframework.osgi.context.support.AbstractOsgiBundleApplicationContext.finishRefresh(AbstractOsgiBundleApplicationContext.java:235)[81:org.springframework.osgi.core:1.2.1]
at
org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext$4.run(AbstractDelegatedExecutionApplicationContext.java:358)[81:org.springframework.osgi.core:1.2.1]
at
org.springframework.osgi.util.internal.PrivilegedUtils.executeWithCustomTCCL(PrivilegedUtils.java:85)[81:org.springframework.osgi.core:1.2.1]
at
org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.completeRefresh(AbstractDelegatedExecutionApplicationContext.java:320)[81:org.springframework.osgi.core:1.2.1]
at
org.springframework.osgi.extender.internal.dependencies.startup.DependencyWaiterApplicationContextExecutor$CompleteRefreshTask.run(DependencyWaiterApplicationContextExecutor.java:132)[84:org.springframework.osgi.extender:1.2.1]
at java.lang.Thread.run(Thread.java:662)[:1.6.0_23]
Caused by: org.apache.cxf.service.factory.ServiceConstructionException:
Could not find definition for service
{urn:enterprise.soap.sforce.com}SoapService.
at
org.apache.cxf.wsdl11.WSDLServiceFactory.create(WSDLServiceFactory.java:139)[133:org.apache.cxf.bundle:2.4.3.fuse-00-13]
at
org.apache.cxf.service.factory.ReflectionServiceFactoryBean.buildServiceFromWSDL(ReflectionServiceFactoryBean.java:382)[133:org.apache.cxf.bundle:2.4.3.fuse-00-13]
at
org.apache.cxf.service.factory.ReflectionServiceFactoryBean.initializeServiceModel(ReflectionServiceFactoryBean.java:505)[133:org.apache.cxf.bundle:2.4.3.fuse-00-13]
at
org.apache.cxf.service.factory.ReflectionServiceFactoryBean.create(ReflectionServiceFactoryBean.java:241)[133:org.apache.cxf.bundle:2.4.3.fuse-00-13]
at
org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.create(JaxWsServiceFactoryBean.java:202)[133:org.apache.cxf.bundle:2.4.3.fuse-00-13]
at
org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory.createEndpoint(AbstractWSDLBasedEndpointFactory.java:101)[133:org.apache.cxf.bundle:2.4.3.fuse-00-13]
at
org.apache.cxf.frontend.ServerFactoryBean.create(ServerFactoryBean.java:157)[133:org.apache.cxf.bundle:2.4.3.fuse-00-13]
at
org.apache.cxf.jaxws.JaxWsServerFactoryBean.create(JaxWsServerFactoryBean.java:202)[133:org.apache.cxf.bundle:2.4.3.fuse-00-13]
at
org.apache.camel.component.cxf.CxfConsumer.<init>(CxfConsumer.java:226)[143:org.apache.camel.camel-cxf:2.8.0.fuse-01-13]
at
org.apache.camel.component.cxf.CxfEndpoint.createConsumer(CxfEndpoint.java:188)[143:org.apache.camel.camel-cxf:2.8.0.fuse-01-13]
at
org.apache.camel.impl.EventDrivenConsumerRoute.addServices(EventDrivenConsumerRoute.java:61)[89:org.apache.camel.camel-core:2.8.0.fuse-01-13]
at
org.apache.camel.impl.DefaultRoute.onStartingServices(DefaultRoute.java:75)[89:org.apache.camel.camel-core:2.8.0.fuse-01-13]
at
org.apache.camel.impl.RouteService.warmUp(RouteService.java:124)[89:org.apache.camel.camel-core:2.8.0.fuse-01-13]
at
org.apache.camel.impl.DefaultCamelContext.doWarmUpRoutes(DefaultCamelContext.java:1862)[89:org.apache.camel.camel-core:2.8.0.fuse-01-13]
at
org.apache.camel.impl.DefaultCamelContext.safelyStartRouteServices(DefaultCamelContext.java:1790)[89:org.apache.camel.camel-core:2.8.0.fuse-01-13]
at
org.apache.camel.impl.DefaultCamelContext.doStartOrResumeRoutes(DefaultCamelContext.java:1575)[89:org.apache.camel.camel-core:2.8.0.fuse-01-13]
at
org.apache.camel.impl.DefaultCamelContext.doStartCamel(DefaultCamelContext.java:1465)[89:org.apache.camel.camel-core:2.8.0.fuse-01-13]
at
org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:1349)[89:org.apache.camel.camel-core:2.8.0.fuse-01-13]
at
org.apache.camel.spring.SpringCamelContext.doStart(SpringCamelContext.java:167)[91:org.apache.camel.camel-spring:2.8.0.fuse-01-13]
at
org.apache.camel.impl.ServiceSupport.start(ServiceSupport.java:67)[89:org.apache.camel.camel-core:2.8.0.fuse-01-13]
at
org.apache.camel.impl.ServiceSupport.start(ServiceSupport.java:54)[89:org.apache.camel.camel-core:2.8.0.fuse-01-13]
at
org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:1317)[89:org.apache.camel.camel-core:2.8.0.fuse-01-13]
at
org.apache.camel.spring.SpringCamelContext.maybeStart(SpringCamelContext.java:211)[91:org.apache.camel.camel-spring:2.8.0.fuse-01-13]
at
org.apache.camel.spring.SpringCamelContext.onApplicationEvent(SpringCamelContext.java:106)[91:org.apache.camel.camel-spring:2.8.0.fuse-01-13]
... 10 more
My route is quite simple:
<from uri="cxf:bean:salesforceCXFConsumer" />
<log message="Incoming message" />
<to uri="cxf:bean:salesforceCXFProducer"/>
And the bean definitions are
<cxf:cxfEndpoint
id="salesforceCXFConsumer"
address="http://0.0.0.0:9191/JavelinSalesforce"
wsdlURL="wsdl/sfdc.wsdl"
serviceClass="com.sforce.soap.enterprise.Soap">
<cxf:properties>
<entry key="schema-validation-enabled" value="true" />
</cxf:properties>
</cxf:cxfEndpoint>
<cxf:cxfEndpoint
id="salesforceCXFProducer"
address="https://login.salesforce.com/services/Soap/c/24.0/"
wsdlURL="wsdl/sfdc.wsdl"
serviceClass="com.sforce.soap.enterprise.Soap"
serviceName="t:SforceService"
endpointName="t:Soap"
xmlns:t="urn:enterprise.soap.sforce.com">
<cxf:properties>
<entry key="dataFormat" value="POJO"/>
<entry key="receiveTimeout" value="120000"/>
<entry key="connectionTimeout" value="120000"/>
<entry key="validateBeforeWrite" value="true"/>
<entry key="validateOutput" value="true"/>
</cxf:properties>
</cxf:cxfEndpoint>
I have looked through the WSDL and such and am having trouble understanding
why servicemix is looking for a SoapService class when I give it just the
class name of Soap, which is defined in the WSDL (and verified to exist when
I generate the stubs from it):
... xmlns:tns="urn:enterprise.soap.sforce.com" ...
<service name="SforceService">
<documentation>Sforce SOAP API</documentation>
<port binding="tns:SoapBinding" name="Soap">
<soap:address
location="https://login.salesforce.com/services/Soap/c/24.0/"/>
</port>
</service>
What am I doing wrong?
--
View this message in context:
http://camel.465427.n5.nabble.com/CXF-Consumer-Producer-endpoint-not-working-properly-tp5570118p5570118.html
Sent from the Camel - Users mailing list archive at Nabble.com.
--
Willem
----------------------------------
FuseSource
Web: http://www.fusesource.com
Blog: http://willemjiang.blogspot.com (English)
http://jnn.javaeye.com (Chinese)
Twitter: willemjiang
Weibo: willemjiang