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.

Reply via email to