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.