Your QueryResult interface is probably remotable. Can you share it?

Sent from my iPad

On Apr 18, 2011, at 10:43 PM, Monosij Dutta-Roy <[email protected]> 
wrote:

> hi Raymond - thanks for your help.
> 
> I created a QueryResults object, not Remotable and injected its interface as 
> a reference to the objects creating and reading the ArrayList of patients. So 
> QueryExecutor creates the QueryResults by Reference and returns to 
> QueryOrchestrator which returns it to QueryService (the webapp).
> 
> The Reference injection is only setup for QueryExecutor.
> I still get the error below.
> I am attaching the class QueryOrchestratorImpl and QueryServiceImpl where the 
> errors happen. I am also attahcing QueryResults.
> The qmAppSCA01 (webapp with QueryServiceImpl) composite qmAppSCA01.composite 
> is attached.
> The qmController (contribution with QueryOrchestratorImpl, QeryExecutorImpl 
> and QueryResultsImpl) composite qmController.composite is attached.
> 
> 
> Thanks again.
> 
> monosij
> -------------------------------------------------------------------------
> [INFO] Started Jetty Server
> QueryServlet reference injection failed, using ComponentContext
> **************************************************
> select distinct * from vw_patient_encounter WHERE sex = 'F' AND cptCode = 
> '77057' AND rownum <= 10
> Patients Count: 9
> 2011-04-19 01:33:09.381:WARN::/qmAppSCA01/QueryServlet
> java.lang.IllegalArgumentException: Pass-by-value is not supported for the 
> given object: $Proxy37
>       at 
> org.apache.tuscany.sca.databinding.javabeans.JavaBeansDataBinding.copy(JavaBeansDataBinding.java:132)
>       at 
> org.apache.tuscany.sca.databinding.DefaultDataBindingExtensionPoint$LazyDataBinding.copy(DefaultDataBindingExtensionPoint.java:169)
>       at 
> org.apache.tuscany.sca.databinding.impl.MediatorImpl.copy(MediatorImpl.java:542)
>       at 
> org.apache.tuscany.sca.databinding.impl.MediatorImpl.copyOutput(MediatorImpl.java:615)
>       at 
> org.apache.tuscany.sca.binding.sca.provider.SCABindingInvoker.processResponse(SCABindingInvoker.java:120)
>       at 
> org.apache.tuscany.sca.core.invocation.InterceptorAsyncImpl.invoke(InterceptorAsyncImpl.java:59)
>       at 
> org.apache.tuscany.sca.core.invocation.impl.JDKInvocationHandler.invoke(JDKInvocationHandler.java:322)
>       at 
> org.apache.tuscany.sca.core.invocation.impl.JDKInvocationHandler.invoke(JDKInvocationHandler.java:278)
>       at 
> org.apache.tuscany.sca.core.invocation.impl.JDKInvocationHandler.invoke(JDKInvocationHandler.java:125)
>       at 
> org.apache.tuscany.sca.core.invocation.impl.AsyncJDKInvocationHandler.doInvokeSync(AsyncJDKInvocationHandler.java:239)
>       at 
> org.apache.tuscany.sca.core.invocation.impl.AsyncJDKInvocationHandler.invoke(AsyncJDKInvocationHandler.java:161)
>       at $Proxy33.getPatients(Unknown Source)
>       at 
> org.rd.qm.impl.QueryOrchestratorImpl.getPatients(QueryOrchestratorImpl.java:27)
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>       at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>       at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>       at java.lang.reflect.Method.invoke(Method.java:616)
>       at 
> org.apache.tuscany.sca.implementation.java.invocation.JavaImplementationInvoker.invoke(JavaImplementationInvoker.java:164)
>       at 
> org.apache.tuscany.sca.binding.sca.provider.SCABindingLocalInvocationInterceptor.invoke(SCABindingLocalInvocationInterceptor.java:49)
>       at 
> org.apache.tuscany.sca.core.invocation.InterceptorAsyncImpl.invoke(InterceptorAsyncImpl.java:58)
>       at 
> org.apache.tuscany.sca.core.invocation.impl.JDKInvocationHandler.invoke(JDKInvocationHandler.java:322)
>       at 
> org.apache.tuscany.sca.core.invocation.impl.JDKInvocationHandler.invoke(JDKInvocationHandler.java:278)
>       at 
> org.apache.tuscany.sca.core.invocation.impl.JDKInvocationHandler.invoke(JDKInvocationHandler.java:125)
>       at 
> org.apache.tuscany.sca.core.invocation.impl.AsyncJDKInvocationHandler.doInvokeSync(AsyncJDKInvocationHandler.java:239)
>       at 
> org.apache.tuscany.sca.core.invocation.impl.AsyncJDKInvocationHandler.invoke(AsyncJDKInvocationHandler.java:161)
>       at $Proxy32.getPatients(Unknown Source)
>       at org.rd.qm.impl.QueryServiceImpl.getPatients(QueryServiceImpl.java:19)
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>       at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>       at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>       at java.lang.reflect.Method.invoke(Method.java:616)
>       at 
> org.apache.tuscany.sca.implementation.java.invocation.JavaImplementationInvoker.invoke(JavaImplementationInvoker.java:164)
>       at 
> org.apache.tuscany.sca.binding.sca.provider.SCABindingLocalInvocationInterceptor.invoke(SCABindingLocalInvocationInterceptor.java:49)
>       at 
> org.apache.tuscany.sca.core.invocation.InterceptorAsyncImpl.invoke(InterceptorAsyncImpl.java:58)
>       at 
> org.apache.tuscany.sca.core.invocation.impl.JDKInvocationHandler.invoke(JDKInvocationHandler.java:322)
>       at 
> org.apache.tuscany.sca.core.invocation.impl.JDKInvocationHandler.invoke(JDKInvocationHandler.java:278)
>       at 
> org.apache.tuscany.sca.core.invocation.impl.JDKInvocationHandler.invoke(JDKInvocationHandler.java:125)
>       at 
> org.apache.tuscany.sca.core.invocation.impl.AsyncJDKInvocationHandler.doInvokeSync(AsyncJDKInvocationHandler.java:239)
>       at 
> org.apache.tuscany.sca.core.invocation.impl.AsyncJDKInvocationHandler.invoke(AsyncJDKInvocationHandler.java:161)
>       at $Proxy31.getPatients(Unknown Source)
>       at org.rd.qm.servlet.QueryServlet.service(QueryServlet.java:82)
>       at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
>       at 
> org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
>       at 
> org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:401)
>       at 
> org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
>       at 
> org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
>       at 
> org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766)
>       at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:450)
>       at 
> org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)
>       at 
> org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
>       at 
> org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
>       at org.mortbay.jetty.Server.handle(Server.java:326)
>       at 
> org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
>       at 
> org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:945)
>       at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:756)
>       at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218)
>       at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
>       at 
> org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410)
>       at 
> org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
> 
> 
> 
> 
> On Mon, Apr 18, 2011 at 11:51 PM, Raymond Feng <[email protected]> wrote:
> Hi,
> 
> Do you use List as the parameter or return type of a remotable operation? If 
> so, please try to wrap the collection into a class that contains the list.
> 
> Raymond
> 
> Sent from my iPad
> 
> On Apr 18, 2011, at 6:38 PM, Monosij Dutta-Roy <[email protected]> 
> wrote:
> 
>> hi Simon - Here's the full trace.
>> 
>> Thanks.
>> 
>> monosij
>> 
>> [INFO] Started Jetty Server
>> QueryServlet reference injection failed, using ComponentContext
>> **************************************************
>> select distinct * from vw_patient_encounter WHERE sex = 'F' AND cptCode = 
>> '77057' AND rownum <= 10
>> Count: 9
>> 2011-04-18 21:35:43.565:WARN::/qmAppSCA01/QueryServlet
>> java.lang.IllegalArgumentException: Pass-by-value is not supported for the 
>> given object: java.util.ArrayList
>>      at 
>> org.apache.tuscany.sca.databinding.javabeans.JavaBeansDataBinding.copy(JavaBeansDataBinding.java:132)
>>      at 
>> org.apache.tuscany.sca.databinding.DefaultDataBindingExtensionPoint$LazyDataBinding.copy(DefaultDataBindingExtensionPoint.java:169)
>>      at 
>> org.apache.tuscany.sca.databinding.impl.MediatorImpl.copy(MediatorImpl.java:542)
>>      at 
>> org.apache.tuscany.sca.databinding.impl.MediatorImpl.copyOutput(MediatorImpl.java:615)
>>      at 
>> org.apache.tuscany.sca.binding.sca.provider.SCABindingInvoker.processResponse(SCABindingInvoker.java:120)
>>      at 
>> org.apache.tuscany.sca.core.invocation.InterceptorAsyncImpl.invoke(InterceptorAsyncImpl.java:59)
>>      at 
>> org.apache.tuscany.sca.core.invocation.impl.JDKInvocationHandler.invoke(JDKInvocationHandler.java:322)
>>      at 
>> org.apache.tuscany.sca.core.invocation.impl.JDKInvocationHandler.invoke(JDKInvocationHandler.java:278)
>>      at 
>> org.apache.tuscany.sca.core.invocation.impl.JDKInvocationHandler.invoke(JDKInvocationHandler.java:125)
>>      at 
>> org.apache.tuscany.sca.core.invocation.impl.AsyncJDKInvocationHandler.doInvokeSync(AsyncJDKInvocationHandler.java:239)
>>      at 
>> org.apache.tuscany.sca.core.invocation.impl.AsyncJDKInvocationHandler.invoke(AsyncJDKInvocationHandler.java:161)
>>      at $Proxy34.getPatients(Unknown Source)
>>      at 
>> org.rd.qm.impl.QueryControllerImpl.getPatients(QueryControllerImpl.java:29)
>>      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>      at 
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>>      at 
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>      at java.lang.reflect.Method.invoke(Method.java:616)
>>      at 
>> org.apache.tuscany.sca.implementation.java.invocation.JavaImplementationInvoker.invoke(JavaImplementationInvoker.java:164)
>>      at 
>> org.apache.tuscany.sca.binding.sca.provider.SCABindingLocalInvocationInterceptor.invoke(SCABindingLocalInvocationInterceptor.java:49)
>>      at 
>> org.apache.tuscany.sca.core.invocation.InterceptorAsyncImpl.invoke(InterceptorAsyncImpl.java:58)
>>      at 
>> org.apache.tuscany.sca.core.invocation.impl.JDKInvocationHandler.invoke(JDKInvocationHandler.java:322)
>>      at 
>> org.apache.tuscany.sca.core.invocation.impl.JDKInvocationHandler.invoke(JDKInvocationHandler.java:278)
>>      at 
>> org.apache.tuscany.sca.core.invocation.impl.JDKInvocationHandler.invoke(JDKInvocationHandler.java:125)
>>      at 
>> org.apache.tuscany.sca.core.invocation.impl.AsyncJDKInvocationHandler.doInvokeSync(AsyncJDKInvocationHandler.java:239)
>>      at 
>> org.apache.tuscany.sca.core.invocation.impl.AsyncJDKInvocationHandler.invoke(AsyncJDKInvocationHandler.java:161)
>>      at $Proxy32.getPatients(Unknown Source)
>>      at org.rd.qm.impl.QueryServiceImpl.getPatients(QueryServiceImpl.java:21)
>>      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>      at 
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>>      at 
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>      at java.lang.reflect.Method.invoke(Method.java:616)
>>      at 
>> org.apache.tuscany.sca.implementation.java.invocation.JavaImplementationInvoker.invoke(JavaImplementationInvoker.java:164)
>>      at 
>> org.apache.tuscany.sca.binding.sca.provider.SCABindingLocalInvocationInterceptor.invoke(SCABindingLocalInvocationInterceptor.java:49)
>>      at 
>> org.apache.tuscany.sca.core.invocation.InterceptorAsyncImpl.invoke(InterceptorAsyncImpl.java:58)
>>      at 
>> org.apache.tuscany.sca.core.invocation.impl.JDKInvocationHandler.invoke(JDKInvocationHandler.java:322)
>>      at 
>> org.apache.tuscany.sca.core.invocation.impl.JDKInvocationHandler.invoke(JDKInvocationHandler.java:278)
>>      at 
>> org.apache.tuscany.sca.core.invocation.impl.JDKInvocationHandler.invoke(JDKInvocationHandler.java:125)
>>      at 
>> org.apache.tuscany.sca.core.invocation.impl.AsyncJDKInvocationHandler.doInvokeSync(AsyncJDKInvocationHandler.java:239)
>>      at 
>> org.apache.tuscany.sca.core.invocation.impl.AsyncJDKInvocationHandler.invoke(AsyncJDKInvocationHandler.java:161)
>>      at $Proxy31.getPatients(Unknown Source)
>>      at org.rd.qm.servlet.QueryServlet.service(QueryServlet.java:80)
>>      at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
>>      at 
>> org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
>>      at 
>> org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:401)
>>      at 
>> org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
>>      at 
>> org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
>>      at 
>> org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766)
>>      at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:450)
>>      at 
>> org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)
>>      at 
>> org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
>>      at 
>> org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
>>      at org.mortbay.jetty.Server.handle(Server.java:326)
>>      at 
>> org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
>>      at 
>> org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:945)
>>      at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:756)
>>      at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218)
>>      at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
>>      at 
>> org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410)
>>      at 
>> org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
>> 
>> --------------------------------------------------
>> 
>> 
>> On Mon, Apr 18, 2011 at 5:55 AM, Simon Nash <[email protected]> wrote:
>> This stack trace appears to be incomplete.  Please can you attach
>> the full stack trace.
>> 
>>  Simon
>> 
>> 
>> Monosij Dutta-Roy wrote:
>> 
>> I am getting the following error when executing a query in webapp I have 
>> been working on.
>> All composites load fine in webapp and I also tried out a few empty get / 
>> sets with strings.
>> However on db access and in returning an ArrayList of Person.
>> Person is the interface to concrete class PatientImpl. I am passing 
>> ArrayList of Person.
>> I put PatientImpl objects in ArrayList of Person.
>> ---------------------------------------------------------
>> Problem accessing /qmAppSCA01/QueryServlet. Reason:
>> 
>>    Pass-by-value is not supported for the given object: java.util.ArrayList
>> Caused by:
>> 
>> java.lang.IllegalArgumentException: Pass-by-value is not supported for the 
>> given object: java.util.ArrayList
>> at 
>> org.apache.tuscany.sca.databinding.javabeans.JavaBeansDataBinding.copy(JavaBeansDataBinding.java:132)
>> at 
>> org.apache.tuscany.sca.databinding.DefaultDataBindingExtensionPoint$LazyDataBinding.copy(DefaultDataBindingExtensionPoint.java:169)
>> at 
>> org.apache.tuscany.sca.databinding.impl.MediatorImpl.copy(MediatorImpl.java:542)
>> at 
>> org.apache.tuscany.sca.databinding.impl.MediatorImpl.copyOutput(MediatorImpl.java:615)
>> at 
>> org.apache.tuscany.sca.binding.sca.provider.SCABindingInvoker.processResponse(SCABindingInvoker.java:120)
>> at 
>> org.apache.tuscany.sca.core.invocation.InterceptorAsyncImpl.invoke(InterceptorAsyncImpl.java:59)
>> at 
>> org.apache.tuscany.sca.core.invocation.impl.JDKInvocationHandler.invoke(JDKInvocationHandler.java:322)
>> at 
>> org.apache.tuscany.sca.core.invocation.impl.JDKInvocationHandler.invoke(JDKInvocationHandler.java:278)
>> at 
>> org.apache.tuscany.sca.core.invocation.impl.JDKInvocationHandler.invoke(JDKInvocationHandler.java:125)
>> at 
>> org.apache.tuscany.sca.core.invocation.impl.AsyncJDKInvocationHandler.doInvokeSync(AsyncJDKInvocationHandler.java:239)
>> at 
>> org.apache.tuscany.sca.core.invocation.impl.AsyncJDKInvocationHandler.invoke(AsyncJDKInvocationHandler.java:161)
>> at $Proxy34.getPatients(Unknown Source)
>> at 
>> org.rd.qm.impl.QueryControllerImpl.getPatients(QueryControllerImpl.java:29)
>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>> at 
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>> at 
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>> at java.lang.reflect.Method.invoke(Method.java:616)
>> ...
>> ...
>> ---------------------------------------------------------
>> When:
>> QueryControllerImpl in qmController 
>> (QueryControllerComponent/QueryController) is attempting to return the 
>> ArrayList of Persons to
>> QueryServiceImpl in qmAppSCA01
>> 
>> QueryControllerImpl in qmController being called:
>> public ArrayList<Person> getPatients(HashMap<String, String> requestMap_) {
>> String query = queryComposer.getQuery(requestMap_);
>> ArrayList<Person> patients = queryExecutor.getPatients(query);
>> return patients;
>> }
>> ---------------------------------------------------------
>> By:
>> QueryServiceImpl from qmAppSCA01:
>> public ArrayList<Person> getPatients(HashMap<String, String> requestMap_) {
>> return queryController.getPatients(requestMap_);
>> }
>> ---------------------------------------------------------
>> Composte defs for QueryControllerComponent and QueryServiceComponent
>> ---------------------------------------------------------
>>    <component name="QueryControllerComponent">
>>        <implementation.java class="org.rd.qm.impl.QueryControllerImpl"/>
>>        <service name="QueryController">
>>            <interface.java interface="org.rd.qm.QueryController"/>
>>        </service>
>>        <reference name="queryComposer" 
>> target="QueryComposerComponent/QueryComposer">
>>            <interface.java interface="org.rd.qm.QueryComposer"/>
>>        </reference>
>>        <reference name="queryExecutor" 
>> target="QueryExecutorComponent/QueryExecutor">
>>            <interface.java interface="org.rd.qm.QueryExecutor"/>
>>        </reference>
>>    </component>
>> ---------------------------------------------------------
>>    <component name="QueryServiceComponent">
>>        <implementation.java class="org.rd.qm.impl.QueryServiceImpl"/>
>>        <service name="QueryService">
>> <interface.java interface="org.rd.qm.QueryService" />
>>        </service>
>>        <reference name="queryController" 
>> target="QueryControllerComponent/QueryController">
>>         <interface.java interface="org.rd.qm.QueryController" />
>>        </reference>
>>    </component>
>> ---------------------------------------------------------
>> 
>> Thanks for your help.
>> 
>> monosij
>> 
>> 
> 
> <QueryOrchestratorImpl.java>
> <QueryResultsImpl.java>
> <QueryServiceImpl.java>
> <qmController.composite>
> <qmAppSCA01.composite>

Reply via email to