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>
