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
> 
> 

Reply via email to