#1 2012-07-23 10:01:24

ytuzet
Member
Registered: 2009-12-10
Posts: 72

Cxf producer :Can't find the BindingOperationInfo with operation name

Hi,

I'm exposing my route as a cxf webservice.

I'm trying to enrich the route message with a call to another cxf web service.

When I make a request on my route, I get this error :
org.apache.cxf.interceptor.Fault: Can't find the BindingOperationInfo with operation name {http://business}generate. Please check the message headers of operationName and operationNamespace.

Here is a picture of the route and the complete logs:

Code:

Démarrage du job TestPopulate a 09:45 23/07/2012.

[main           ] AnnotationTypeConverterLoader  INFO  Found 3 packages with 15 @Converter classes to load
[main           ] DefaultTypeConverter           INFO  Loaded 170 core type converters (total 170 type converters)
[main           ] AnnotationTypeConverterLoader  INFO  Loaded 5 @Converter classes
[main           ] DefaultTypeConverter           INFO  Loaded additional 23 type converters (total 193 type converters) in 0.053 seconds
[main           ] MainSupport                    INFO  Apache Camel 2.9.2 starting
[main           ] ManagementStrategyFactory      INFO  JMX enabled. Using ManagedManagementStrategy.
[main           ] DefaultCamelContext            INFO  Apache Camel 2.9.2 (CamelContext: TestPopulate-ctx) is starting
[main           ] ultManagementLifecycleStrategy INFO  StatisticsLevel at All so enabling load performance statistics
[main           ] XPathBuilder                   INFO  Created default XPathFactory com.sun.org.apache.xpath.internal.jaxp.XPathFactoryImpl@48fd918a
[main           ] CxfEndpoint                    WARN  The  endpoint/port name of cxf://http://localhost:8041/services/BdocPopulateCrm?dataFormat=PAYLOAD&wsdlURL=C:/temp/bdoc/wsdl/Populate.wsdl is empty, cxf will try to load the first one in wsdl for you.
[main           ] CxfEndpoint                    WARN  The  service name of cxf://http://localhost:8041/services/BdocPopulateCrm?dataFormat=PAYLOAD&wsdlURL=C:/temp/bdoc/wsdl/Populate.wsdl is empty, cxf will try to load the first one in wsdl for you.
[main           ] ReflectionServiceFactoryBean   INFO  Creating Service {http://business}PopulateService from WSDL: C:/temp/bdoc/wsdl/Populate.wsdl
[main           ] ServerImpl                     INFO  Setting the server's publish address to be http://localhost:8041/services/BdocPopulateCrm
[main           ] CxfEndpoint                    WARN  The endpoint/port name of cxf://http://localhost:8040/services/ACDCWSGetAction?dataFormat=PAYLOAD&wsdlURL=http://localhost:8040/services/ACDCWSGetAction?wsdl is empty, cxf will try to load the first one in wsdl for you.
[main           ] CxfEndpoint                    WARN  The service name of cxf://http://localhost:8040/services/ACDCWSGetAction?dataFormat=PAYLOAD&wsdlURL=http://localhost:8040/services/ACDCWSGetAction?wsdl is empty, cxf will try to load the first one in wsdl for you.
[main           ] ReflectionServiceFactoryBean   INFO  Creating Service {http://www.talend.org/service/}ACDCWSGetAction from WSDL: http://localhost:8040/services/ACDCWSGetAction?wsdl
[main           ] PayLoadDataFormatFeature       INFO  removing the interceptor org.apache.cxf.interceptor.ClientFaultConverter@5acad437
[main           ] Server                         INFO  jetty-7.x.y-SNAPSHOT
[main           ] AbstractConnector              INFO  Started SelectChannelConnector@localhost:8041 STARTING
[main           ] ContextHandler                 INFO  started o.e.j.s.h.ContextHandler{/services,null}
[main           ] DefaultCamelContext            INFO  Route: cCXF_1 started and consuming from: Endpoint[cxf://http://localhost:8041/services/BdocPopulateCrm?dataFormat=PAYLOAD&wsdlURL=C:/temp/bdoc/wsdl/Populate.wsdl]
[main           ] DefaultCamelContext            INFO  Route: direct:getAction started and consuming from: Endpoint[direct://getAction]
[main           ] DefaultCamelContext            INFO  Total 2 routes, of which 2 is started.
[main           ] DefaultCamelContext            INFO  Apache Camel 2.9.2 (CamelContext: TestPopulate-ctx) started in 2.531 seconds
[statistics] connecting to socket on port 3846
[statistics] connected
[tp2067892688-19] DefaultErrorHandler            ERROR Failed delivery for (MessageId: ID-infp41-61175-1343029532575-0-5 on ExchangeId: ID-infp41-61175-1343029532575-0-4). Exhausted after delivery attempt: 1 caught: java.lang.IllegalArgumentException: Can't find the BindingOperationInfo with operation name {http://business}generate. Please check the message headers of operationName and operationNamespace.
java.lang.IllegalArgumentException: Can't find the BindingOperationInfo with operation name {http://business}generate. Please check the message headers of operationName and operationNamespace.
    at org.apache.camel.component.cxf.CxfProducer.getBindingOperationInfo(CxfProducer.java:355)[camel-cxf-alldep-2.9.2.jar:2.9.2]
    at org.apache.camel.component.cxf.CxfProducer.prepareBindingOperation(CxfProducer.java:202)[camel-cxf-alldep-2.9.2.jar:2.9.2]
    at org.apache.camel.component.cxf.CxfProducer.process(CxfProducer.java:103)[camel-cxf-alldep-2.9.2.jar:2.9.2]
    at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)[camel-core-2.9.2.jar:2.9.2]
    at org.apache.camel.processor.SendProcessor$2.doInAsyncProducer(SendProcessor.java:115)[camel-core-2.9.2.jar:2.9.2]
    at org.apache.camel.impl.ProducerCache.doInAsyncProducer(ProducerCache.java:285)[camel-core-2.9.2.jar:2.9.2]
    at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:110)[camel-core-2.9.2.jar:2.9.2]
    at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)[camel-core-2.9.2.jar:2.9.2]
    at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)[camel-core-2.9.2.jar:2.9.2]
    at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)[camel-core-2.9.2.jar:2.9.2]
    at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:71)[camel-core-2.9.2.jar:2.9.2]
    at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)[camel-core-2.9.2.jar:2.9.2]
    at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)[camel-core-2.9.2.jar:2.9.2]
    at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)[camel-core-2.9.2.jar:2.9.2]
    at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:91)[camel-core-2.9.2.jar:2.9.2]
    at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)[camel-core-2.9.2.jar:2.9.2]
    at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:333)[camel-core-2.9.2.jar:2.9.2]
    at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:223)[camel-core-2.9.2.jar:2.9.2]
    at org.apache.camel.processor.RouteContextProcessor.processNext(RouteContextProcessor.java:45)[camel-core-2.9.2.jar:2.9.2]
    at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)[camel-core-2.9.2.jar:2.9.2]
    at org.apache.camel.processor.interceptor.DefaultChannel.process(DefaultChannel.java:304)[camel-core-2.9.2.jar:2.9.2]
    at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)[camel-core-2.9.2.jar:2.9.2]
    at org.apache.camel.processor.Pipeline.process(Pipeline.java:117)[camel-core-2.9.2.jar:2.9.2]
    at org.apache.camel.processor.Pipeline.process(Pipeline.java:80)[camel-core-2.9.2.jar:2.9.2]
    at org.apache.camel.processor.RouteContextProcessor.processNext(RouteContextProcessor.java:45)[camel-core-2.9.2.jar:2.9.2]
    at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)[camel-core-2.9.2.jar:2.9.2]
    at org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:122)[camel-core-2.9.2.jar:2.9.2]
    at org.apache.camel.processor.RouteInflightRepositoryProcessor.processNext(RouteInflightRepositoryProcessor.java:50)[camel-core-2.9.2.jar:2.9.2]
    at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)[camel-core-2.9.2.jar:2.9.2]
    at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)[camel-core-2.9.2.jar:2.9.2]
    at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)[camel-core-2.9.2.jar:2.9.2]
    at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)[camel-core-2.9.2.jar:2.9.2]
    at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:71)[camel-core-2.9.2.jar:2.9.2]
    at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)[camel-core-2.9.2.jar:2.9.2]
    at org.apache.camel.component.direct.DirectProducer.process(DirectProducer.java:61)[camel-core-2.9.2.jar:2.9.2]
    at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)[camel-core-2.9.2.jar:2.9.2]
    at org.apache.camel.processor.Enricher.process(Enricher.java:114)[camel-core-2.9.2.jar:2.9.2]
    at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)[camel-core-2.9.2.jar:2.9.2]
    at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)[camel-core-2.9.2.jar:2.9.2]
    at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)[camel-core-2.9.2.jar:2.9.2]
    at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:71)[camel-core-2.9.2.jar:2.9.2]
    at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)[camel-core-2.9.2.jar:2.9.2]
    at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)[camel-core-2.9.2.jar:2.9.2]
    at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)[camel-core-2.9.2.jar:2.9.2]
    at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:91)[camel-core-2.9.2.jar:2.9.2]
    at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)[camel-core-2.9.2.jar:2.9.2]
    at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:333)[camel-core-2.9.2.jar:2.9.2]
    at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:223)[camel-core-2.9.2.jar:2.9.2]
    at org.apache.camel.processor.RouteContextProcessor.processNext(RouteContextProcessor.java:45)[camel-core-2.9.2.jar:2.9.2]
    at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)[camel-core-2.9.2.jar:2.9.2]
    at org.apache.camel.processor.interceptor.DefaultChannel.process(DefaultChannel.java:304)[camel-core-2.9.2.jar:2.9.2]
    at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)[camel-core-2.9.2.jar:2.9.2]
    at org.apache.camel.processor.Pipeline.process(Pipeline.java:117)[camel-core-2.9.2.jar:2.9.2]
    at org.apache.camel.processor.Pipeline.process(Pipeline.java:80)[camel-core-2.9.2.jar:2.9.2]
    at org.apache.camel.processor.RouteContextProcessor.processNext(RouteContextProcessor.java:45)[camel-core-2.9.2.jar:2.9.2]
    at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)[camel-core-2.9.2.jar:2.9.2]
    at org.apache.camel.processor.UnitOfWorkProcessor.processAsync(UnitOfWorkProcessor.java:150)[camel-core-2.9.2.jar:2.9.2]
    at org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:117)[camel-core-2.9.2.jar:2.9.2]
    at org.apache.camel.processor.RouteInflightRepositoryProcessor.processNext(RouteInflightRepositoryProcessor.java:50)[camel-core-2.9.2.jar:2.9.2]
    at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)[camel-core-2.9.2.jar:2.9.2]
    at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)[camel-core-2.9.2.jar:2.9.2]
    at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)[camel-core-2.9.2.jar:2.9.2]
    at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)[camel-core-2.9.2.jar:2.9.2]
    at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:71)[camel-core-2.9.2.jar:2.9.2]
    at org.apache.camel.component.cxf.CxfConsumer$1.asyncInvoke(CxfConsumer.java:88)[camel-cxf-alldep-2.9.2.jar:2.9.2]
    at org.apache.camel.component.cxf.CxfConsumer$1.invoke(CxfConsumer.java:68)[camel-cxf-alldep-2.9.2.jar:2.9.2]
    at org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:58)[camel-cxf-alldep-2.9.2.jar:2.9.2]
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)[:1.6.0_24]
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)[:1.6.0_24]
    at java.util.concurrent.FutureTask.run(FutureTask.java:138)[:1.6.0_24]
    at org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecutor.java:37)[camel-cxf-alldep-2.9.2.jar:2.9.2]
    at org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:106)[camel-cxf-alldep-2.9.2.jar:2.9.2]
    at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:262)[camel-cxf-alldep-2.9.2.jar:2.9.2]
    at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:122)[camel-cxf-alldep-2.9.2.jar:2.9.2]
    at org.apache.cxf.transport.http_jetty.JettyHTTPDestination.serviceRequest(JettyHTTPDestination.java:344)[cxf-bundle-2.6.0.jar:2.6.0]
    at org.apache.cxf.transport.http_jetty.JettyHTTPDestination.doService(JettyHTTPDestination.java:310)[cxf-bundle-2.6.0.jar:2.6.0]
    at org.apache.cxf.transport.http_jetty.JettyHTTPHandler.handle(JettyHTTPHandler.java:72)[cxf-bundle-2.6.0.jar:2.6.0]
    at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:943)[camel-jetty-alldep-2.9.2.jar:2.9.2]
    at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:879)[camel-jetty-alldep-2.9.2.jar:2.9.2]
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117)[camel-jetty-alldep-2.9.2.jar:2.9.2]
    at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:250)[camel-jetty-alldep-2.9.2.jar:2.9.2]
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:110)[camel-jetty-alldep-2.9.2.jar:2.9.2]
    at org.eclipse.jetty.server.Server.handle(Server.java:349)[camel-jetty-alldep-2.9.2.jar:2.9.2]
    at org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:441)[camel-jetty-alldep-2.9.2.jar:2.9.2]
    at org.eclipse.jetty.server.HttpConnection$RequestHandler.content(HttpConnection.java:936)[camel-jetty-alldep-2.9.2.jar:2.9.2]
    at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:801)[camel-jetty-alldep-2.9.2.jar:2.9.2]
    at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:224)[camel-jetty-alldep-2.9.2.jar:2.9.2]
    at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:51)[camel-jetty-alldep-2.9.2.jar:2.9.2]
    at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:586)[camel-jetty-alldep-2.9.2.jar:2.9.2]
    at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:44)[camel-jetty-alldep-2.9.2.jar:2.9.2]
    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:598)[camel-jetty-alldep-2.9.2.jar:2.9.2]
    at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:533)[camel-jetty-alldep-2.9.2.jar:2.9.2]
    at java.lang.Thread.run(Thread.java:662)[:1.6.0_24]
[tp2067892688-19] PhaseInterceptorChain          WARN  Interceptor for {http://business}PopulateService#{http://business}generate has thrown exception, unwinding now
org.apache.cxf.interceptor.Fault: Can't find the BindingOperationInfo with operation name {http://business}generate. Please check the message headers of operationName and operationNamespace.
    at org.apache.camel.component.cxf.CxfConsumer$1.checkFailure(CxfConsumer.java:194)[camel-cxf-alldep-2.9.2.jar:2.9.2]
    at org.apache.camel.component.cxf.CxfConsumer$1.setResponseBack(CxfConsumer.java:174)[camel-cxf-alldep-2.9.2.jar:2.9.2]
    at org.apache.camel.component.cxf.CxfConsumer$1.asyncInvoke(CxfConsumer.java:103)[camel-cxf-alldep-2.9.2.jar:2.9.2]
    at org.apache.camel.component.cxf.CxfConsumer$1.invoke(CxfConsumer.java:68)[camel-cxf-alldep-2.9.2.jar:2.9.2]
    at org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:58)[camel-cxf-alldep-2.9.2.jar:2.9.2]
    at org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:93)[camel-cxf-alldep-2.9.2.jar:2.9.2]
    at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:262)[camel-cxf-alldep-2.9.2.jar:2.9.2]
    at org.apache.cxf.phase.PhaseInterceptorChain.resume(PhaseInterceptorChain.java:231)[camel-cxf-alldep-2.9.2.jar:2.9.2]
    at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:79)[camel-cxf-alldep-2.9.2.jar:2.9.2]
    at org.apache.cxf.transport.http_jetty.JettyHTTPDestination.serviceRequest(JettyHTTPDestination.java:344)[cxf-bundle-2.6.0.jar:2.6.0]
    at org.apache.cxf.transport.http_jetty.JettyHTTPDestination.doService(JettyHTTPDestination.java:310)[cxf-bundle-2.6.0.jar:2.6.0]
    at org.apache.cxf.transport.http_jetty.JettyHTTPHandler.handle(JettyHTTPHandler.java:72)[cxf-bundle-2.6.0.jar:2.6.0]
    at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:943)[camel-jetty-alldep-2.9.2.jar:2.9.2]
    at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:879)[camel-jetty-alldep-2.9.2.jar:2.9.2]
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117)[camel-jetty-alldep-2.9.2.jar:2.9.2]
    at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:188)[camel-jetty-alldep-2.9.2.jar:2.9.2]
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:110)[camel-jetty-alldep-2.9.2.jar:2.9.2]
    at org.eclipse.jetty.server.Server.handleAsync(Server.java:394)[camel-jetty-alldep-2.9.2.jar:2.9.2]
    at org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:446)[camel-jetty-alldep-2.9.2.jar:2.9.2]
    at org.eclipse.jetty.server.HttpConnection$RequestHandler.content(HttpConnection.java:936)[camel-jetty-alldep-2.9.2.jar:2.9.2]
    at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:801)[camel-jetty-alldep-2.9.2.jar:2.9.2]
    at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:224)[camel-jetty-alldep-2.9.2.jar:2.9.2]
    at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:51)[camel-jetty-alldep-2.9.2.jar:2.9.2]
    at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:586)[camel-jetty-alldep-2.9.2.jar:2.9.2]
    at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:44)[camel-jetty-alldep-2.9.2.jar:2.9.2]
    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:598)[camel-jetty-alldep-2.9.2.jar:2.9.2]
    at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:533)[camel-jetty-alldep-2.9.2.jar:2.9.2]
    at java.lang.Thread.run(Thread.java:662)[:1.6.0_24]

Uploaded Images

Last edited by ytuzet (2012-07-23 10:01:49)

Offline

#2 2012-07-23 12:31:13

gusto2
Member
Company: Apogado
Registered: 2011-09-27
Posts: 164
Website

Re: Cxf producer :Can't find the BindingOperationInfo with operation name

Hi,

java.lang.IllegalArgumentException: Can't find the BindingOperationInfo with operation name {http://business}generate. Please check the message headers of operationName and operationNamespace.

as you see in the exception, before calling cxf endpoint as a client, you have to set operationName, operationNamespace and eventually soapAction to define which operation you want to invoke. You can set the parameters into the exchange header.

Have fun
     Gabriel

Last edited by gusto2 (2012-07-23 12:32:54)


Gabriel Vince
Senior Consultant
Apogado
www.apogado.com

Offline

#3 2012-07-23 14:10:12

ytuzet
Member
Registered: 2009-12-10
Posts: 72

Re: Cxf producer :Can't find the BindingOperationInfo with operation name

Not working.

Same error with new values of operationName and operationNamespace


Code:

Can't find the BindingOperationInfo with operation name {http://www.talend.org/service/}ACDCWSGetActionOperation. Please check the message headers of operationName and operationNamespace.

Offline

#4 2012-07-23 15:12:33

eost
Talend Team
Registered: 2010-12-07
Posts: 241

Re: Cxf producer :Can't find the BindingOperationInfo with operation name

Sounds  like you need to do the same operation on the contentEnrich branch.  Can you send an updated image of your route?  I notice that the message has changed from missing
{http://business}generate
to
{http://www.talend.org/service/}ACDCWSGetActionOperation

Offline

#5 2012-07-23 15:44:30

ytuzet
Member
Registered: 2009-12-10
Posts: 72

Re: Cxf producer :Can't find the BindingOperationInfo with operation name

Yes,

as you can see on picture, cCXF_1 corresponds to {http://business}/generate (the consumer)
and cCXF_2 corresponds to {http://www.talend.org/service/}ACDCWSGetActionOperation (the producer)


Uploaded Images

Offline

#6 2012-07-23 19:19:04

eost
Talend Team
Registered: 2010-12-07
Posts: 241

Re: Cxf producer :Can't find the BindingOperationInfo with operation name

You need to set both the operationName and probably the operationNamespace headers on the message prior to invoking the cCXF_2 client.  You can do that with the setHeader component.

Offline

#7 2012-07-23 21:42:55

ytuzet
Member
Registered: 2009-12-10
Posts: 72

Re: Cxf producer :Can't find the BindingOperationInfo with operation name

I've done it in the bean processor before cxf 2!

Offline

#8 2012-07-23 22:05:50

eost
Talend Team
Registered: 2010-12-07
Posts: 241

Re: Cxf producer :Can't find the BindingOperationInfo with operation name

you've done what before ?

What kind message format are you using?  POJO, Payload, or Message?

When you have more than one operation in the target service you need to specify the operation name.  In your previous work did your service have more than one message?

Offline

#9 2012-07-24 08:09:12

ytuzet
Member
Registered: 2009-12-10
Posts: 72

Re: Cxf producer :Can't find the BindingOperationInfo with operation name

I 've defined the headers operationName and operationNamespace in the bean processor.

Message is payload and there's only one operation in the webservice ACDCWSGetAction.

Offline

#10 2012-07-24 14:18:52

eost
Talend Team
Registered: 2010-12-07
Posts: 241

Re: Cxf producer :Can't find the BindingOperationInfo with operation name

Sounds like you have covered everything.  I notice in your error message that it references the www.talend.org namespace.  I assume the correct namespace for your ACDCWSGetAction service is {http://business}.  Are you sure the operation namespace is actually getting set correctly in the bean?  Perhaps there is a typo in the header or it is in a branch that is not executing?

How about adding a log: component on the path between your bean and the cxf client to validate that you are indeed setting it as desired.

you might also want to try creating a separate simplified route to invoke just the ACDCWSGetAction service on its own, get that to work, and then add it back into the content enrich route.

Offline

#11 2012-07-24 14:39:50

ytuzet
Member
Registered: 2009-12-10
Posts: 72

Re: Cxf producer :Can't find the BindingOperationInfo with operation name

No http://business is for cxf_1...

I tried another approach and solve my problem but I don't know if it's a good practice.

I change my bean processor with a velocity template with complete soap request.
Then I plug it on jetty component that points to my webservice url.

It works but I'm forced to use resources that are not embedded in the route.

Does talend plan to add embedded resources files in deployment bundles?

Offline

#12 2012-07-24 15:57:00

eost
Talend Team
Registered: 2010-12-07
Posts: 241

Re: Cxf producer :Can't find the BindingOperationInfo with operation name

Yes, Talend will support resource bundles in a more managed fashion in 5.2.

Glad  you found a work-around, but I cannot say it is one I would suggest.  You will need a genuine CXF client to do any kind of more complicated SOAP WS-* support, or to take advantage of service locator endpoint virtualization or service activity monitor logging framework.  If you export items and post it your original route as a zip file I'll take a look.

Offline

#13 2012-07-25 09:08:24

ytuzet
Member
Registered: 2009-12-10
Posts: 72

Re: Cxf producer :Can't find the BindingOperationInfo with operation name

Cool for 5.2 features !

I tried once more with cxf client and did it working.
I used this time tSetHeader components to declare operationName and operationNamespace, I think i made mistakes in my bean processor.
I think the cxf producer populates these two headers and makes confusion for the cxf client.

Anyway I'm stuck this time at deployment to the container.
The route is working fine in the studio and in the container when I declare a full url as endpoint for my webservice.
But when I declare a relative endpoint "/Populate" so that I can request my webservice from anywhere on the network I get a "javax.xml.stream.XMLStreamException: No open start element, when trying to write end element"

Very frustrating...

Full log:

Code:

15:26:14,492 | WARN  | qtp1093240870-32 | ache.cxf.common.logging.LogUtils  405 |  -  -  | Interceptor for {http://business}PopulateService#{http://business}generate has thrown exception, unwinding now
java.lang.NullPointerException
    at org.eclipse.jetty.io.BufferUtil.putHexInt(BufferUtil.java:149)[55:org.eclipse.jetty.io:7.5.4.v20111024]
    at org.eclipse.jetty.http.HttpGenerator.prepareBuffers(HttpGenerator.java:996)[56:org.eclipse.jetty.http:7.5.4.v20111024]
    at org.eclipse.jetty.http.HttpGenerator.flushBuffer(HttpGenerator.java:826)[56:org.eclipse.jetty.http:7.5.4.v20111024]
    at org.eclipse.jetty.server.HttpConnection.flushResponse(HttpConnection.java:612)[60:org.eclipse.jetty.server:7.5.4.v20111024]
    at org.eclipse.jetty.server.HttpConnection$Output.close(HttpConnection.java:995)[60:org.eclipse.jetty.server:7.5.4.v20111024]
    at org.apache.cxf.transport.http.AbstractHTTPDestination$WrappedOutputStream.close(AbstractHTTPDestination.java:683)[117:org.apache.cxf.cxf-rt-transports-http:2.6.0]
    at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)[109:org.apache.cxf.cxf-api:2.6.0]
    at org.apache.cxf.transport.http.AbstractHTTPDestination$BackChannelConduit.close(AbstractHTTPDestination.java:626)[117:org.apache.cxf.cxf-rt-transports-http:2.6.0]
    at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)[109:org.apache.cxf.cxf-api:2.6.0]
    at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:262)[109:org.apache.cxf.cxf-api:2.6.0]
    at org.apache.cxf.interceptor.OutgoingChainInterceptor.handleMessage(OutgoingChainInterceptor.java:77)[109:org.apache.cxf.cxf-api:2.6.0]
    at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:262)[109:org.apache.cxf.cxf-api:2.6.0]
    at org.apache.cxf.phase.PhaseInterceptorChain.resume(PhaseInterceptorChain.java:231)[109:org.apache.cxf.cxf-api:2.6.0]
    at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:79)[109:org.apache.cxf.cxf-api:2.6.0]
    at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:211)[117:org.apache.cxf.cxf-rt-transports-http:2.6.0]
    at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:213)[117:org.apache.cxf.cxf-rt-transports-http:2.6.0]
    at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:193)[117:org.apache.cxf.cxf-rt-transports-http:2.6.0]
    at org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:129)[117:org.apache.cxf.cxf-rt-transports-http:2.6.0]
    at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:187)[117:org.apache.cxf.cxf-rt-transports-http:2.6.0]
    at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:110)[117:org.apache.cxf.cxf-rt-transports-http:2.6.0]
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:713)[51:org.apache.geronimo.specs.geronimo-servlet_2.5_spec:1.1.2]
    at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:166)[117:org.apache.cxf.cxf-rt-transports-http:2.6.0]
    at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:547)[62:org.eclipse.jetty.servlet:7.5.4.v20111024]
    at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:480)[62:org.eclipse.jetty.servlet:7.5.4.v20111024]
    at org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler.doHandle(HttpServiceServletHandler.java:70)[72:org.ops4j.pax.web.pax-web-jetty:1.0.8]
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119)[60:org.eclipse.jetty.server:7.5.4.v20111024]
    at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:520)[61:org.eclipse.jetty.security:7.5.4.v20111024]
    at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:227)[60:org.eclipse.jetty.server:7.5.4.v20111024]
    at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:941)[60:org.eclipse.jetty.server:7.5.4.v20111024]
    at org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.doHandle(HttpServiceContext.java:117)[72:org.ops4j.pax.web.pax-web-jetty:1.0.8]
    at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:409)[62:org.eclipse.jetty.servlet:7.5.4.v20111024]
    at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:186)[60:org.eclipse.jetty.server:7.5.4.v20111024]
    at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:875)[60:org.eclipse.jetty.server:7.5.4.v20111024]
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117)[60:org.eclipse.jetty.server:7.5.4.v20111024]
    at org.ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection.handle(JettyServerHandlerCollection.java:72)[72:org.ops4j.pax.web.pax-web-jetty:1.0.8]
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:110)[60:org.eclipse.jetty.server:7.5.4.v20111024]
    at org.eclipse.jetty.server.Server.handleAsync(Server.java:394)[60:org.eclipse.jetty.server:7.5.4.v20111024]
    at org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:446)[60:org.eclipse.jetty.server:7.5.4.v20111024]
    at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:48)[60:org.eclipse.jetty.server:7.5.4.v20111024]
    at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:586)[55:org.eclipse.jetty.io:7.5.4.v20111024]
    at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:44)[55:org.eclipse.jetty.io:7.5.4.v20111024]
    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:598)[54:org.eclipse.jetty.util:7.5.4.v20111024]
    at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:533)[54:org.eclipse.jetty.util:7.5.4.v20111024]
    at java.lang.Thread.run(Thread.java:662)[:1.6.0_24]
15:26:14,493 | WARN  | qtp1093240870-32 | ache.cxf.common.logging.LogUtils  405 |  -  -  | Interceptor for {http://business}PopulateService#{http://business}generate has thrown exception, unwinding now
org.apache.cxf.binding.soap.SoapFault: Error writing to XMLStreamWriter.
    at org.apache.cxf.binding.soap.interceptor.SoapOutInterceptor$SoapOutEndingInterceptor.handleMessage(SoapOutInterceptor.java:288)[115:org.apache.cxf.cxf-rt-bindings-soap:2.6.0]
    at org.apache.cxf.binding.soap.interceptor.SoapOutInterceptor$SoapOutEndingInterceptor.handleMessage(SoapOutInterceptor.java:270)[115:org.apache.cxf.cxf-rt-bindings-soap:2.6.0]
    at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:262)[109:org.apache.cxf.cxf-api:2.6.0]
    at org.apache.cxf.interceptor.AbstractFaultChainInitiatorObserver.onMessage(AbstractFaultChainInitiatorObserver.java:113)[109:org.apache.cxf.cxf-api:2.6.0]
    at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:322)[109:org.apache.cxf.cxf-api:2.6.0]
    at org.apache.cxf.interceptor.OutgoingChainInterceptor.handleMessage(OutgoingChainInterceptor.java:77)[109:org.apache.cxf.cxf-api:2.6.0]
    at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:262)[109:org.apache.cxf.cxf-api:2.6.0]
    at org.apache.cxf.phase.PhaseInterceptorChain.resume(PhaseInterceptorChain.java:231)[109:org.apache.cxf.cxf-api:2.6.0]
    at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:79)[109:org.apache.cxf.cxf-api:2.6.0]
    at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:211)[117:org.apache.cxf.cxf-rt-transports-http:2.6.0]
    at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:213)[117:org.apache.cxf.cxf-rt-transports-http:2.6.0]
    at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:193)[117:org.apache.cxf.cxf-rt-transports-http:2.6.0]
    at org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:129)[117:org.apache.cxf.cxf-rt-transports-http:2.6.0]
    at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:187)[117:org.apache.cxf.cxf-rt-transports-http:2.6.0]
    at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:110)[117:org.apache.cxf.cxf-rt-transports-http:2.6.0]
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:713)[51:org.apache.geronimo.specs.geronimo-servlet_2.5_spec:1.1.2]
    at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:166)[117:org.apache.cxf.cxf-rt-transports-http:2.6.0]
    at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:547)[62:org.eclipse.jetty.servlet:7.5.4.v20111024]
    at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:480)[62:org.eclipse.jetty.servlet:7.5.4.v20111024]
    at org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler.doHandle(HttpServiceServletHandler.java:70)[72:org.ops4j.pax.web.pax-web-jetty:1.0.8]
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119)[60:org.eclipse.jetty.server:7.5.4.v20111024]
    at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:520)[61:org.eclipse.jetty.security:7.5.4.v20111024]
    at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:227)[60:org.eclipse.jetty.server:7.5.4.v20111024]
    at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:941)[60:org.eclipse.jetty.server:7.5.4.v20111024]
    at org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.doHandle(HttpServiceContext.java:117)[72:org.ops4j.pax.web.pax-web-jetty:1.0.8]
    at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:409)[62:org.eclipse.jetty.servlet:7.5.4.v20111024]
    at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:186)[60:org.eclipse.jetty.server:7.5.4.v20111024]
    at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:875)[60:org.eclipse.jetty.server:7.5.4.v20111024]
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117)[60:org.eclipse.jetty.server:7.5.4.v20111024]
    at org.ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection.handle(JettyServerHandlerCollection.java:72)[72:org.ops4j.pax.web.pax-web-jetty:1.0.8]
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:110)[60:org.eclipse.jetty.server:7.5.4.v20111024]
    at org.eclipse.jetty.server.Server.handleAsync(Server.java:394)[60:org.eclipse.jetty.server:7.5.4.v20111024]
    at org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:446)[60:org.eclipse.jetty.server:7.5.4.v20111024]
    at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:48)[60:org.eclipse.jetty.server:7.5.4.v20111024]
    at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:586)[55:org.eclipse.jetty.io:7.5.4.v20111024]
    at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:44)[55:org.eclipse.jetty.io:7.5.4.v20111024]
    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:598)[54:org.eclipse.jetty.util:7.5.4.v20111024]
    at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:533)[54:org.eclipse.jetty.util:7.5.4.v20111024]
    at java.lang.Thread.run(Thread.java:662)[:1.6.0_24]
Caused by: javax.xml.stream.XMLStreamException: No open start element, when trying to write end element
    at com.ctc.wstx.sw.BaseStreamWriter.throwOutputError(BaseStreamWriter.java:1524)[102:woodstox-core-asl:4.1.2]
    at com.ctc.wstx.sw.BaseStreamWriter.reportNwfStructure(BaseStreamWriter.java:1553)[102:woodstox-core-asl:4.1.2]
    at com.ctc.wstx.sw.BaseNsStreamWriter.doWriteEndTag(BaseNsStreamWriter.java:648)[102:woodstox-core-asl:4.1.2]
    at com.ctc.wstx.sw.BaseNsStreamWriter.writeEndElement(BaseNsStreamWriter.java:280)[102:woodstox-core-asl:4.1.2]
    at org.apache.cxf.binding.soap.interceptor.SoapOutInterceptor$SoapOutEndingInterceptor.handleMessage(SoapOutInterceptor.java:279)[115:org.apache.cxf.cxf-rt-bindings-soap:2.6.0]

Offline

Board footer

Powered by FluxBB