Im trying to use the proxy builder but fails. I have defined the interface;
*public interface IDataAccess { public List<Named> retrieveData(DataRequest request); public List<State> retrieveState(StateRequest request); public OrbitalState getOrbitalState(OrbitalStateRequest request); } * I have defined the routes (NOTE: The SOLR is a new camel component. The SolrProducer extends the DefaultProducer); *from("direct:statestore").to("solr:statestore?solrhome=c:/solr"); IDataAccess access = new ProxyBuilder(getContext()).endpoint("direct:statestore").build(IDataAccess.class); * I then try to invoke a method on the proxy; *List<State> states = access.retrieveState(new StateRequest()); * What I intended this to do was to use the proxy to send the 'StateRequest' to the SOLR component through the defined 'direct:statestore' route. I expected that the OUT body of the exchange returned by the Solrproducer would be cast to a List<State> and returned. When I execute I get the error; 2012-12-10 16:11:29 [ERROR] (org.slf4j.helpers.MarkerIgnoringBase) Failed delivery for (MessageId: ID:Admin-VAIO-64910-1355152274711-11:1:2:1:1 on ExchangeId: ID-Admin-VAIO-64909-1355152273447-0-19). Exhausted after delivery attempt: 1 caught: java.lang.reflect.UndeclaredThrowableException java.lang.reflect.UndeclaredThrowableException at $Proxy40.retrieveState(Unknown Source) at org.hbird.business.command.releaser.CommandReleaser.process(CommandReleaser.java:81) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.camel.component.bean.MethodInfo.invoke(MethodInfo.java:341) at org.apache.camel.component.bean.MethodInfo$1.proceed(MethodInfo.java:238) at org.apache.camel.component.bean.BeanProcessor.process(BeanProcessor.java:166) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73) at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99) at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90) at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:73) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73) at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99) at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90) at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:91) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73) at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:334) at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:220) at org.apache.camel.processor.RouteContextProcessor.processNext(RouteContextProcessor.java:45) at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90) at org.apache.camel.processor.interceptor.DefaultChannel.process(DefaultChannel.java:303) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73) at org.apache.camel.processor.Pipeline.process(Pipeline.java:117) at org.apache.camel.processor.Pipeline.process(Pipeline.java:80) at org.apache.camel.processor.RouteContextProcessor.processNext(RouteContextProcessor.java:45) at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90) at org.apache.camel.processor.UnitOfWorkProcessor.processAsync(UnitOfWorkProcessor.java:150) at org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:117) at org.apache.camel.processor.RouteInflightRepositoryProcessor.processNext(RouteInflightRepositoryProcessor.java:48) at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73) at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99) at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90) at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:73) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:99) at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:86) at org.apache.camel.component.jms.EndpointMessageListener.onMessage(EndpointMessageListener.java:104) at org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:560) at org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:498) at org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:467) at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:325) at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:263) at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:1058) at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:1050) at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:947) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:662) Caused by: org.apache.camel.InvalidPayloadException: No body available of type: java.util.List but has value: BeanInvocation public abstract java.util.List org.hbird.exchange.dataaccess.IDataAccess.retrieveState(org.hbird.exchange.dataaccess.StateRequest) with [org.hbird.exchange.dataaccess.StateRequest@700edc]] of type: org.apache.camel.component.bean.BeanInvocation on: Message: BeanInvocation public abstract java.util.List org.hbird.exchange.dataaccess.IDataAccess.retrieveState(org.hbird.exchange.dataaccess.StateRequest) with [org.hbird.exchange.dataaccess.StateRequest@700edc]]. Caused by: No type converter available to convert from type: org.apache.camel.component.bean.BeanInvocation to the required type: java.util.List with value BeanInvocation public abstract java.util.List org.hbird.exchange.dataaccess.IDataAccess.retrieveState(org.hbird.exchange.dataaccess.StateRequest) with [org.hbird.exchange.dataaccess.StateRequest@700edc]]. Exchange[Message: BeanInvocation public abstract java.util.List org.hbird.exchange.dataaccess.IDataAccess.retrieveState(org.hbird.exchange.dataaccess.StateRequest) with [org.hbird.exchange.dataaccess.StateRequest@700edc]]]. Caused by: [org.apache.camel.NoTypeConversionAvailableException - No type converter available to convert from type: org.apache.camel.component.bean.BeanInvocation to the required type: java.util.List with value BeanInvocation public abstract java.util.List org.hbird.exchange.dataaccess.IDataAccess.retrieveState(org.hbird.exchange.dataaccess.StateRequest) with [org.hbird.exchange.dataaccess.StateRequest@700edc]]] at org.apache.camel.impl.MessageSupport.getMandatoryBody(MessageSupport.java:101) at org.apache.camel.component.bean.AbstractCamelInvocationHandler.getBody(AbstractCamelInvocationHandler.java:72) at org.apache.camel.component.bean.AbstractCamelInvocationHandler.afterInvoke(AbstractCamelInvocationHandler.java:175) at org.apache.camel.component.bean.AbstractCamelInvocationHandler$1.call(AbstractCamelInvocationHandler.java:112) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) at java.util.concurrent.FutureTask.run(FutureTask.java:138) at org.apache.camel.component.bean.AbstractCamelInvocationHandler.invokeWithBody(AbstractCamelInvocationHandler.java:128) at org.apache.camel.component.bean.CamelInvocationHandler.doInvokeProxy(CamelInvocationHandler.java:45) at org.apache.camel.component.bean.AbstractCamelInvocationHandler.invoke(AbstractCamelInvocationHandler.java:82) ... 50 more Caused by: org.apache.camel.NoTypeConversionAvailableException: No type converter available to convert from type: org.apache.camel.component.bean.BeanInvocation to the required type: java.util.List with value BeanInvocation public abstract java.util.List org.hbird.exchange.dataaccess.IDataAccess.retrieveState(org.hbird.exchange.dataaccess.StateRequest) with [org.hbird.exchange.dataaccess.StateRequest@700edc]] at org.apache.camel.impl.converter.BaseTypeConverterRegistry.mandatoryConvertTo(BaseTypeConverterRegistry.java:169) at org.apache.camel.impl.MessageSupport.getMandatoryBody(MessageSupport.java:99) ... 58 more -- View this message in context: http://camel.465427.n5.nabble.com/Problems-using-ProxyBuilder-tp5723839.html Sent from the Camel - Users mailing list archive at Nabble.com.