Can you send a small test case to me?
I can not tell if there is something wrong from the files that you
showed to me.
On 7/8/11 7:53 PM, kmoens wrote:
update:
I used cxf tool java2ws to generate wsdl, where I changed the name to "foo".
I used this wsdl to expose my external web service, which is now running on
http://localhost:8080/aml/FooService?WSDL
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions name="foo" targetNamespace="http://aml.mycomp.com/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:tns="http://aml.mycomp.com/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
<wsdl:types>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:tns="http://aml.mycomp.com/" attributeFormDefault="unqualified"
elementFormDefault="unqualified" targetNamespace="http://aml.mycomp.com/">
<xs:element name="isValidPayment" type="tns:isValidPayment"/>
<xs:element name="isValidPaymentResponse"
type="tns:isValidPaymentResponse"/>
<xs:complexType name="isValidPayment">
<xs:sequence>
<xs:element minOccurs="0" name="currency" type="xs:string"/>
<xs:element minOccurs="0" name="amount" type="xs:decimal"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="isValidPaymentResponse">
<xs:sequence>
<xs:element name="return" type="xs:boolean"/>
</xs:sequence>
</xs:complexType>
<xs:element name="AmlFault" type="tns:AmlFault"/>
<xs:complexType name="AmlFault">
<xs:sequence/>
</xs:complexType>
</xs:schema>
</wsdl:types>
<wsdl:message name="isValidPayment">
<wsdl:part name="parameters" element="tns:isValidPayment">
</wsdl:part>
</wsdl:message>
<wsdl:message name="AmlException">
<wsdl:part name="AmlException" element="tns:AmlFault">
</wsdl:part>
</wsdl:message>
<wsdl:message name="isValidPaymentResponse">
<wsdl:part name="parameters" element="tns:isValidPaymentResponse">
</wsdl:part>
</wsdl:message>
<wsdl:portType name="Aml">
<wsdl:operation name="isValidPayment">
<wsdl:input name="isValidPayment" message="tns:isValidPayment">
</wsdl:input>
<wsdl:output name="isValidPaymentResponse"
message="tns:isValidPaymentResponse">
</wsdl:output>
<wsdl:fault name="AmlException" message="tns:AmlException">
</wsdl:fault>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="FooServiceSoapBinding" type="tns:Aml">
<soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="isValidPayment">
<soap:operation soapAction="" style="document"/>
<wsdl:input name="isValidPayment">
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output name="isValidPaymentResponse">
<soap:body use="literal"/>
</wsdl:output>
<wsdl:fault name="AmlException">
<soap:fault name="AmlException" use="literal"/>
</wsdl:fault>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="FooService">
<wsdl:port name="AmlServicePort" binding="tns:FooServiceSoapBinding">
<soap:address location="http://localhost:8080/aml/FooService"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
Still, when Camel is launched I get the error:
org.apache.camel.FailedToCreateProducerException: Failed to create Producer
for endpoint: Endpoint[cxf://bean:amlEndpoint]. Reason:
org.apache.cxf.service.factory.ServiceConstructionException: Could not find
definition for service {http://aml.mycomp.com}FooService.
at
org.apache.camel.impl.ProducerCache.doGetProducer(ProducerCache.java:362)
at
org.apache.camel.impl.ProducerCache.acquireProducer(ProducerCache.java:93)
at
org.apache.camel.impl.ProducerCache.startProducer(ProducerCache.java:124)
at
org.apache.camel.processor.SendProcessor.doStart(SendProcessor.java:144)
at org.apache.camel.impl.ServiceSupport.start(ServiceSupport.java:65)
at org.apache.camel.impl.ServiceSupport.start(ServiceSupport.java:52)
at
org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:52)
at
org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:66)
at
org.apache.camel.processor.DelegateAsyncProcessor.doStart(DelegateAsyncProcessor.java:77)
at org.apache.camel.impl.ServiceSupport.start(ServiceSupport.java:65)
at org.apache.camel.impl.ServiceSupport.start(ServiceSupport.java:52)
at
org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:52)
at
org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:66)
at
org.apache.camel.processor.DelegateAsyncProcessor.doStart(DelegateAsyncProcessor.java:77)
at
org.apache.camel.processor.interceptor.TraceInterceptor.doStart(TraceInterceptor.java:429)
at org.apache.camel.impl.ServiceSupport.start(ServiceSupport.java:65)
at org.apache.camel.impl.ServiceSupport.start(ServiceSupport.java:52)
at
org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:52)
at
org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:66)
at
org.apache.camel.processor.RedeliveryErrorHandler.doStart(RedeliveryErrorHandler.java:847)
at org.apache.camel.impl.ServiceSupport.start(ServiceSupport.java:65)
at org.apache.camel.impl.ServiceSupport.start(ServiceSupport.java:52)
at
org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:52)
at
org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:66)
at
org.apache.camel.processor.DefaultChannel.doStart(DefaultChannel.java:146)
at org.apache.camel.impl.ServiceSupport.start(ServiceSupport.java:65)
at org.apache.camel.impl.ServiceSupport.start(ServiceSupport.java:52)
at
org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:83)
at
org.apache.camel.processor.MulticastProcessor.doStart(MulticastProcessor.java:893)
at org.apache.camel.impl.ServiceSupport.start(ServiceSupport.java:65)
at org.apache.camel.impl.ServiceSupport.start(ServiceSupport.java:52)
at
org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:52)
at
org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:66)
at
org.apache.camel.processor.DelegateAsyncProcessor.doStart(DelegateAsyncProcessor.java:77)
at org.apache.camel.impl.ServiceSupport.start(ServiceSupport.java:65)
at org.apache.camel.impl.ServiceSupport.start(ServiceSupport.java:52)
at
org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:52)
at
org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:66)
at
org.apache.camel.processor.DelegateAsyncProcessor.doStart(DelegateAsyncProcessor.java:77)
at org.apache.camel.impl.ServiceSupport.start(ServiceSupport.java:65)
at org.apache.camel.impl.ServiceSupport.start(ServiceSupport.java:52)
at
org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:52)
at
org.apache.camel.impl.RouteService.startChildService(RouteService.java:233)
at org.apache.camel.impl.RouteService.warmUp(RouteService.java:136)
at
org.apache.camel.impl.DefaultCamelContext.doWarmUpRoutes(DefaultCamelContext.java:1803)
at
org.apache.camel.impl.DefaultCamelContext.safelyStartRouteServices(DefaultCamelContext.java:1729)
at
org.apache.camel.impl.DefaultCamelContext.doStartOrResumeRoutes(DefaultCamelContext.java:1528)
at
org.apache.camel.impl.DefaultCamelContext.doStartCamel(DefaultCamelContext.java:1420)
at
org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:1321)
at
org.apache.camel.spring.SpringCamelContext.doStart(SpringCamelContext.java:164)
at org.apache.camel.impl.ServiceSupport.start(ServiceSupport.java:65)
at org.apache.camel.impl.ServiceSupport.start(ServiceSupport.java:52)
at
org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:1299)
at
org.apache.camel.spring.SpringCamelContext.maybeStart(SpringCamelContext.java:203)
at
org.apache.camel.spring.SpringCamelContext.onApplicationEvent(SpringCamelContext.java:101)
at
org.apache.camel.spring.CamelContextFactoryBean.onApplicationEvent(CamelContextFactoryBean.java:237)
at
org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:97)
at
org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:303)
at
org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:911)
at
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:428)
at
org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)
at
org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83)
at vap.AmlTest.createApplicationContext(AmlTest.java:15)
at vap.AmlTest.createApplicationContext(AmlTest.java:1)
at
org.apache.camel.test.junit4.CamelSpringTestSupport.setUp(CamelSpringTestSupport.java:50)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
at
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
at
org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:27)
at
org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
at
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76)
at
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
at
org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:49)
at
org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
Caused by: org.apache.cxf.service.factory.ServiceConstructionException:
Could not find definition for service {http://aml.mycomp.com}FooService.
at
org.apache.cxf.wsdl11.WSDLServiceFactory.create(WSDLServiceFactory.java:131)
at
org.apache.cxf.service.factory.ReflectionServiceFactoryBean.buildServiceFromWSDL(ReflectionServiceFactoryBean.java:386)
at
org.apache.cxf.service.factory.ReflectionServiceFactoryBean.initializeServiceModel(ReflectionServiceFactoryBean.java:503)
at
org.apache.cxf.service.factory.ReflectionServiceFactoryBean.create(ReflectionServiceFactoryBean.java:242)
at
org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.create(JaxWsServiceFactoryBean.java:202)
at
org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory.createEndpoint(AbstractWSDLBasedEndpointFactory.java:101)
at
org.apache.cxf.frontend.ClientFactoryBean.create(ClientFactoryBean.java:90)
at
org.apache.cxf.frontend.ClientProxyFactoryBean.create(ClientProxyFactoryBean.java:117)
at
org.apache.cxf.jaxws.JaxWsProxyFactoryBean.create(JaxWsProxyFactoryBean.java:124)
at
org.apache.camel.component.cxf.CxfSpringEndpoint.createClient(CxfSpringEndpoint.java:140)
at
org.apache.camel.component.cxf.CxfProducer.<init>(CxfProducer.java:70)
at
org.apache.camel.component.cxf.CxfEndpoint.createProducer(CxfEndpoint.java:118)
at
org.apache.camel.impl.ProducerCache.doGetProducer(ProducerCache.java:358)
... 87 more
Any other clues?
Thanks
--
View this message in context:
http://camel.465427.n5.nabble.com/Using-cxf-bean-to-invoke-external-webservice-tp4561146p4564482.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