You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@camel.apache.org by Claus Ibsen <cl...@gmail.com> on 2014/04/06 11:06:25 UTC

Re: camel cxf (wsdl first) pojo: Can't find the BindingOperationInfo

Hi

Try with:

setBody(params);


On Fri, Apr 4, 2014 at 8:45 PM, Nicolas74 <nm...@gnubila.fr> wrote:
> Hello camel guys :-)
>
> I'm trying to invoke my CXF Web Service (contract first) from a camel route.
> I would like to invoke the method "updateJobsStatus(String)"
> However I get an IllegalArgumentException:
>
> Stacktrace
> ---------------------------------------------------------------------------------------------------------------------------------------
> java.lang.IllegalArgumentException: Can't find the BindingOperationInfo with
> operation name {http://XXX}updateJobsStatus. Please check the message
> headers of operationName and operationNamespace.
>         at
> org.apache.camel.component.cxf.CxfProducer.getBindingOperationInfo(CxfProducer.java:365)[149:org.apache.camel.camel-cxf:2.12.0.redhat-610366]
>         at
> org.apache.camel.component.cxf.CxfProducer.prepareBindingOperation(CxfProducer.java:205)[149:org.apache.camel.camel-cxf:2.12.0.redhat-610366]
>         at
> org.apache.camel.component.cxf.CxfProducer.process(CxfProducer.java:102)[149:org.apache.camel.camel-cxf:2.12.0.redhat-610366]
>         at
> org.apache.camel.processor.SendProcessor.process(SendProcessor.java:110)[147:org.apache.camel.camel-core:2.12.0.redhat-610366]
>         at
> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:72)[147:org.apache.camel.camel-core:2.12.0.redhat-610366]
>         at
> org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:398)[147:org.apache.camel.camel-core:2.12.0.redhat-610366]
>         at
> org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)[147:org.apache.camel.camel-core:2.12.0.redhat-610366]
>         at
> org.apache.camel.processor.Pipeline.process(Pipeline.java:118)[147:org.apache.camel.camel-core:2.12.0.redhat-610366]
>         at
> org.apache.camel.processor.Pipeline.process(Pipeline.java:80)[147:org.apache.camel.camel-core:2.12.0.redhat-610366]
>         at
> org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)[147:org.apache.camel.camel-core:2.12.0.redhat-610366]
>         at
> org.apache.camel.component.timer.TimerConsumer.sendTimerExchange(TimerConsumer.java:139)[147:org.apache.camel.camel-core:2.12.0.redhat-610366]
>         at
> org.apache.camel.component.timer.TimerConsumer$1.run(TimerConsumer.java:64)[147:org.apache.camel.camel-core:2.12.0.redhat-610366]
>         at java.util.TimerThread.mainLoop(Timer.java:555)[:1.7.0_51]
>         at java.util.TimerThread.run(Timer.java:505)[:1.7.0_51] blueprint.xml
> <http://camel.465427.n5.nabble.com/file/n5749822/blueprint.xml>
> JobUpdaterPortType.JobUpdaterPortType
> <http://camel.465427.n5.nabble.com/file/n5749822/JobUpdaterPortType.JobUpdaterPortType>
> route.java <http://camel.465427.n5.nabble.com/file/n5749822/route.java>
> wsdl.wsdl <http://camel.465427.n5.nabble.com/file/n5749822/wsdl.wsdl>
>
> I don't know if I'm doing something wrong in my WSDL, in my blueprint.xml or
> in my route...
>
> You will find below my code:
> WSDL: attached to this post
> Blueprint: attached to this post
> Route: attached to this post
> PortType: attached to this post
>
> I hope you can help me. This error makes me crazy !
>
> Best,
> Nicolas.
>
>
>
>
> --
> View this message in context: http://camel.465427.n5.nabble.com/camel-cxf-wsdl-first-pojo-Can-t-find-the-BindingOperationInfo-tp5749822.html
> Sent from the Camel - Users mailing list archive at Nabble.com.



-- 
Claus Ibsen
-----------------
Red Hat, Inc.
Email: cibsen@redhat.com
Twitter: davsclaus
Blog: http://davsclaus.com
Author of Camel in Action: http://www.manning.com/ibsen
Make your Camel applications look hawt, try: http://hawt.io

Re: camel cxf (wsdl first) pojo: Can't find the BindingOperationInfo

Posted by Claus Ibsen <cl...@gmail.com>.
Hi

You are using pojo dataformat
> <entry key="dataFormat" value="POJO"/>

So you need to use the generate pojo class when you set the body in
the Camel processor. Instead of using a List.


On Sun, Apr 6, 2014 at 7:53 PM, Nicolas74 <nm...@gnubila.fr> wrote:
> Hi Claus,
>
> I tried to follow your advice:
> from("timer://updateWorkflowsStatus?fixedRate=true&period=6000")
>                         .setHeader("operationName", constant("updateJobsStatus"))
>                         .setHeader("operationNamespace", constant("http://XXX/"))
>                         .process(new Processor() {
>
>                                 @Override
>                                 public void process(Exchange exchange) throws Exception {
>                                         List params = new ArrayList();
>                                         params.add("xxx"); // fake string
>                                         exchange.getIn().setBody(params);
>                                 }
>                         })
>                 .to("cxf:bean:serviceEndpoint");
>
> However I'm still having the error:
>
> 2014-04-06 19:37:16,171 | ERROR | eWorkflowsStatus | DefaultErrorHandler
> | rg.apache.camel.util.CamelLogger  215 | 147 - org.apache.camel.camel-core
> - 2.12.0.redhat-610366 | Failed delivery for (MessageId:
> ID-nicolas-G73Jw-60503-1396805830461-0-1 on ExchangeId:
> ID-nicolas-G73Jw-60503-1396805830461-0-2). Exhausted after delivery attempt:
> 1 caught: java.lang.IllegalArgumentException: Can't find the
> BindingOperationInfo with operation name {http://XXX/}updateJobsStatus.
> Please check the message headers of operationName and operationNamespace.
>
> Message History
> ---------------------------------------------------------------------------------------------------------------------------------------
> RouteId              ProcessorId          Processor
> Elapsed (ms)
> [route2            ] [route2            ]
> [timer://updateWorkflowsStatus?fixedRate=true&period=6000
> ] [        21]
> [route2            ] [setHeader1        ] [setHeader[operationName]
> ] [         8]
> [route2            ] [setHeader2        ] [setHeader[operationNamespace]
> ] [         0]
> [route2            ] [process1          ]
> [XXX.pipeline.UpdateWorkflowStatusRoute$2@64a92237    ] [         0]
> [route2            ] [process2          ]
> [XXX.pipeline.UpdateWorkflowStatusRoute$1@1c057c82    ] [         2]
> [route2            ] [log2              ] [log
> ] [         2]
> [route2            ] [to3               ] [cxf:bean:serviceEndpoint
> ] [         2]
>
> Exchange
> ---------------------------------------------------------------------------------------------------------------------------------------
> Exchange[
>         Id                  ID-nicolas-G73Jw-60503-1396805830461-0-2
>         ExchangePattern     InOnly
>         Headers             {breadcrumbId=ID-nicolas-G73Jw-60503-1396805830461-0-1,
> CamelRedelivered=false, CamelRedeliveryCounter=0, firedTime=Sun Apr 06
> 19:37:16 CEST 2014, operationName=updateJobsStatus,
> operationNamespace=http://XXX/}
>         BodyType            java.util.ArrayList
>         Body                [xxx]
> ]
>
> Stacktrace
> ---------------------------------------------------------------------------------------------------------------------------------------
> java.lang.IllegalArgumentException: Can't find the BindingOperationInfo with
> operation name {http://XXX/}updateJobsStatus. Please check the message
> headers of operationName and operationNamespace.
>         at
> org.apache.camel.component.cxf.CxfProducer.getBindingOperationInfo(CxfProducer.java:365)[149:org.apache.camel.camel-cxf:2.12.0.redhat-610366]
>         at
> org.apache.camel.component.cxf.CxfProducer.prepareBindingOperation(CxfProducer.java:205)[149:org.apache.camel.camel-cxf:2.12.0.redhat-610366]
>         at
> org.apache.camel.component.cxf.CxfProducer.process(CxfProducer.java:102)[149:org.apache.camel.camel-cxf:2.12.0.redhat-610366]
>         at
> org.apache.camel.processor.SendProcessor.process(SendProcessor.java:110)[147:org.apache.camel.camel-core:2.12.0.redhat-610366]
>         at
> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:72)[147:org.apache.camel.camel-core:2.12.0.redhat-610366]
>         at
> org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:398)[147:org.apache.camel.camel-core:2.12.0.redhat-610366]
>         at
> org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)[147:org.apache.camel.camel-core:2.12.0.redhat-610366]
>         at
> org.apache.camel.processor.Pipeline.process(Pipeline.java:118)[147:org.apache.camel.camel-core:2.12.0.redhat-610366]
>         at
> org.apache.camel.processor.Pipeline.process(Pipeline.java:80)[147:org.apache.camel.camel-core:2.12.0.redhat-610366]
>         at
> org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)[147:org.apache.camel.camel-core:2.12.0.redhat-610366]
>         at
> org.apache.camel.component.timer.TimerConsumer.sendTimerExchange(TimerConsumer.java:139)[147:org.apache.camel.camel-core:2.12.0.redhat-610366]
>         at
> org.apache.camel.component.timer.TimerConsumer$1.run(TimerConsumer.java:64)[147:org.apache.camel.camel-core:2.12.0.redhat-610366]
>         at java.util.TimerThread.mainLoop(Timer.java:555)[:1.7.0_51]
>         at java.util.TimerThread.run(Timer.java:505)[:1.7.0_51]
> 2014-04-06 19:37:16,174 | WARN  | eWorkflowsStatus | TimerConsumer
> | rg.apache.camel.util.CamelLogger  224 | 147 - org.apache.camel.camel-core
> - 2.12.0.redhat-610366 | Error processing exchange. Exchange[Message:
> [xxx]]. Caused by: [java.lang.IllegalArgumentException - Can't find the
> BindingOperationInfo with operation name {http://XXX/}updateJobsStatus.
> Please check the message headers of operationName and operationNamespace.]
> java.lang.IllegalArgumentException: Can't find the BindingOperationInfo with
> operation name {http://XXX/}updateJobsStatus. Please check the message
> headers of operationName and operationNamespace.
>         at
> org.apache.camel.component.cxf.CxfProducer.getBindingOperationInfo(CxfProducer.java:365)[149:org.apache.camel.camel-cxf:2.12.0.redhat-610366]
>         at
> org.apache.camel.component.cxf.CxfProducer.prepareBindingOperation(CxfProducer.java:205)[149:org.apache.camel.camel-cxf:2.12.0.redhat-610366]
>         at
> org.apache.camel.component.cxf.CxfProducer.process(CxfProducer.java:102)[149:org.apache.camel.camel-cxf:2.12.0.redhat-610366]
>         at
> org.apache.camel.processor.SendProcessor.process(SendProcessor.java:110)[147:org.apache.camel.camel-core:2.12.0.redhat-610366]
>         at
> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:72)[147:org.apache.camel.camel-core:2.12.0.redhat-610366]
>         at
> org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:398)[147:org.apache.camel.camel-core:2.12.0.redhat-610366]
>         at
> org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)[147:org.apache.camel.camel-core:2.12.0.redhat-610366]
>         at
> org.apache.camel.processor.Pipeline.process(Pipeline.java:118)[147:org.apache.camel.camel-core:2.12.0.redhat-610366]
>         at
> org.apache.camel.processor.Pipeline.process(Pipeline.java:80)[147:org.apache.camel.camel-core:2.12.0.redhat-610366]
>         at
> org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)[147:org.apache.camel.camel-core:2.12.0.redhat-610366]
>         at
> org.apache.camel.component.timer.TimerConsumer.sendTimerExchange(TimerConsumer.java:139)[147:org.apache.camel.camel-core:2.12.0.redhat-610366]
>         at
> org.apache.camel.component.timer.TimerConsumer$1.run(TimerConsumer.java:64)[147:org.apache.camel.camel-core:2.12.0.redhat-610366]
>         at java.util.TimerThread.mainLoop(Timer.java:555)[:1.7.0_51]
>         at java.util.TimerThread.run(Timer.java:505)[:1.7.0_51]
>
>
>
> Usually, what kind of mistake can generate this error ?
>
> Best,
> Nicolas.
>
>
>
> --
> View this message in context: http://camel.465427.n5.nabble.com/camel-cxf-wsdl-first-pojo-Can-t-find-the-BindingOperationInfo-tp5749822p5749861.html
> Sent from the Camel - Users mailing list archive at Nabble.com.



-- 
Claus Ibsen
-----------------
Red Hat, Inc.
Email: cibsen@redhat.com
Twitter: davsclaus
Blog: http://davsclaus.com
Author of Camel in Action: http://www.manning.com/ibsen
Make your Camel applications look hawt, try: http://hawt.io

Re: camel cxf (wsdl first) pojo: Can't find the BindingOperationInfo

Posted by Nicolas74 <nm...@gnubila.fr>.
Hi Claus,

I tried to follow your advice:
from("timer://updateWorkflowsStatus?fixedRate=true&period=6000")
			.setHeader("operationName", constant("updateJobsStatus"))
			.setHeader("operationNamespace", constant("http://XXX/"))
			.process(new Processor() {

				@Override
				public void process(Exchange exchange) throws Exception {
					List params = new ArrayList();
					params.add("xxx"); // fake string
					exchange.getIn().setBody(params);
				}
			})
		.to("cxf:bean:serviceEndpoint");

However I'm still having the error:

2014-04-06 19:37:16,171 | ERROR | eWorkflowsStatus | DefaultErrorHandler             
| rg.apache.camel.util.CamelLogger  215 | 147 - org.apache.camel.camel-core
- 2.12.0.redhat-610366 | Failed delivery for (MessageId:
ID-nicolas-G73Jw-60503-1396805830461-0-1 on ExchangeId:
ID-nicolas-G73Jw-60503-1396805830461-0-2). Exhausted after delivery attempt:
1 caught: java.lang.IllegalArgumentException: Can't find the
BindingOperationInfo with operation name {http://XXX/}updateJobsStatus.
Please check the message headers of operationName and operationNamespace.

Message History
---------------------------------------------------------------------------------------------------------------------------------------
RouteId              ProcessorId          Processor                                                                       
Elapsed (ms)
[route2            ] [route2            ]
[timer://updateWorkflowsStatus?fixedRate=true&period=6000                     
] [        21]
[route2            ] [setHeader1        ] [setHeader[operationName]                                                     
] [         8]
[route2            ] [setHeader2        ] [setHeader[operationNamespace]                                                
] [         0]
[route2            ] [process1          ]
[XXX.pipeline.UpdateWorkflowStatusRoute$2@64a92237    ] [         0]
[route2            ] [process2          ]
[XXX.pipeline.UpdateWorkflowStatusRoute$1@1c057c82    ] [         2]
[route2            ] [log2              ] [log                                                                          
] [         2]
[route2            ] [to3               ] [cxf:bean:serviceEndpoint                                                     
] [         2]

Exchange
---------------------------------------------------------------------------------------------------------------------------------------
Exchange[
	Id                  ID-nicolas-G73Jw-60503-1396805830461-0-2
	ExchangePattern     InOnly
	Headers             {breadcrumbId=ID-nicolas-G73Jw-60503-1396805830461-0-1,
CamelRedelivered=false, CamelRedeliveryCounter=0, firedTime=Sun Apr 06
19:37:16 CEST 2014, operationName=updateJobsStatus,
operationNamespace=http://XXX/}
	BodyType            java.util.ArrayList
	Body                [xxx]
]

Stacktrace
---------------------------------------------------------------------------------------------------------------------------------------
java.lang.IllegalArgumentException: Can't find the BindingOperationInfo with
operation name {http://XXX/}updateJobsStatus. Please check the message
headers of operationName and operationNamespace.
	at
org.apache.camel.component.cxf.CxfProducer.getBindingOperationInfo(CxfProducer.java:365)[149:org.apache.camel.camel-cxf:2.12.0.redhat-610366]
	at
org.apache.camel.component.cxf.CxfProducer.prepareBindingOperation(CxfProducer.java:205)[149:org.apache.camel.camel-cxf:2.12.0.redhat-610366]
	at
org.apache.camel.component.cxf.CxfProducer.process(CxfProducer.java:102)[149:org.apache.camel.camel-cxf:2.12.0.redhat-610366]
	at
org.apache.camel.processor.SendProcessor.process(SendProcessor.java:110)[147:org.apache.camel.camel-core:2.12.0.redhat-610366]
	at
org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:72)[147:org.apache.camel.camel-core:2.12.0.redhat-610366]
	at
org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:398)[147:org.apache.camel.camel-core:2.12.0.redhat-610366]
	at
org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)[147:org.apache.camel.camel-core:2.12.0.redhat-610366]
	at
org.apache.camel.processor.Pipeline.process(Pipeline.java:118)[147:org.apache.camel.camel-core:2.12.0.redhat-610366]
	at
org.apache.camel.processor.Pipeline.process(Pipeline.java:80)[147:org.apache.camel.camel-core:2.12.0.redhat-610366]
	at
org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)[147:org.apache.camel.camel-core:2.12.0.redhat-610366]
	at
org.apache.camel.component.timer.TimerConsumer.sendTimerExchange(TimerConsumer.java:139)[147:org.apache.camel.camel-core:2.12.0.redhat-610366]
	at
org.apache.camel.component.timer.TimerConsumer$1.run(TimerConsumer.java:64)[147:org.apache.camel.camel-core:2.12.0.redhat-610366]
	at java.util.TimerThread.mainLoop(Timer.java:555)[:1.7.0_51]
	at java.util.TimerThread.run(Timer.java:505)[:1.7.0_51]
2014-04-06 19:37:16,174 | WARN  | eWorkflowsStatus | TimerConsumer                   
| rg.apache.camel.util.CamelLogger  224 | 147 - org.apache.camel.camel-core
- 2.12.0.redhat-610366 | Error processing exchange. Exchange[Message:
[xxx]]. Caused by: [java.lang.IllegalArgumentException - Can't find the
BindingOperationInfo with operation name {http://XXX/}updateJobsStatus.
Please check the message headers of operationName and operationNamespace.]
java.lang.IllegalArgumentException: Can't find the BindingOperationInfo with
operation name {http://XXX/}updateJobsStatus. Please check the message
headers of operationName and operationNamespace.
	at
org.apache.camel.component.cxf.CxfProducer.getBindingOperationInfo(CxfProducer.java:365)[149:org.apache.camel.camel-cxf:2.12.0.redhat-610366]
	at
org.apache.camel.component.cxf.CxfProducer.prepareBindingOperation(CxfProducer.java:205)[149:org.apache.camel.camel-cxf:2.12.0.redhat-610366]
	at
org.apache.camel.component.cxf.CxfProducer.process(CxfProducer.java:102)[149:org.apache.camel.camel-cxf:2.12.0.redhat-610366]
	at
org.apache.camel.processor.SendProcessor.process(SendProcessor.java:110)[147:org.apache.camel.camel-core:2.12.0.redhat-610366]
	at
org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:72)[147:org.apache.camel.camel-core:2.12.0.redhat-610366]
	at
org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:398)[147:org.apache.camel.camel-core:2.12.0.redhat-610366]
	at
org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)[147:org.apache.camel.camel-core:2.12.0.redhat-610366]
	at
org.apache.camel.processor.Pipeline.process(Pipeline.java:118)[147:org.apache.camel.camel-core:2.12.0.redhat-610366]
	at
org.apache.camel.processor.Pipeline.process(Pipeline.java:80)[147:org.apache.camel.camel-core:2.12.0.redhat-610366]
	at
org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)[147:org.apache.camel.camel-core:2.12.0.redhat-610366]
	at
org.apache.camel.component.timer.TimerConsumer.sendTimerExchange(TimerConsumer.java:139)[147:org.apache.camel.camel-core:2.12.0.redhat-610366]
	at
org.apache.camel.component.timer.TimerConsumer$1.run(TimerConsumer.java:64)[147:org.apache.camel.camel-core:2.12.0.redhat-610366]
	at java.util.TimerThread.mainLoop(Timer.java:555)[:1.7.0_51]
	at java.util.TimerThread.run(Timer.java:505)[:1.7.0_51]



Usually, what kind of mistake can generate this error ?

Best,
Nicolas.



--
View this message in context: http://camel.465427.n5.nabble.com/camel-cxf-wsdl-first-pojo-Can-t-find-the-BindingOperationInfo-tp5749822p5749861.html
Sent from the Camel - Users mailing list archive at Nabble.com.