Skip to main content
Announcements
SYSTEM MAINTENANCE: Thurs., Sept. 19, 1 AM ET, Platform will be unavailable for approx. 60 minutes.
cancel
Showing results for 
Search instead for 
Did you mean: 
ytuzet
Creator
Creator

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:

Démarrage du job TestPopulate a 09:45 23/07/2012.
AnnotationTypeConverterLoader INFO Found 3 packages with 15 @Converter classes to load
DefaultTypeConverter INFO Loaded 170 core type converters (total 170 type converters)
AnnotationTypeConverterLoader INFO Loaded 5 @Converter classes
DefaultTypeConverter INFO Loaded additional 23 type converters (total 193 type converters) in 0.053 seconds
MainSupport INFO Apache Camel 2.9.2 starting
ManagementStrate


To see the whole post, download it here
Labels (3)
12 Replies
Anonymous
Not applicable

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
ytuzet
Creator
Creator
Author

Not working.
Same error with new values of operationName and operationNamespace

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

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
ytuzet
Creator
Creator
Author

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)
Anonymous
Not applicable

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.
ytuzet
Creator
Creator
Author

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

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?
ytuzet
Creator
Creator
Author

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.
Anonymous
Not applicable

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.