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