Thanks Simon. Works great. Keeping the Person, PhysicalLocation as services made no sense.
On Thu, May 5, 2011 at 5:24 AM, Simon Nash <[email protected]> wrote: > Monosij Dutta-Roy wrote: > >> I am resubmitting my post as my configuration with returning the >> collection - an ArrayList I continue to get the Pass-By-Value error. I am >> using Beta-2. >> >> I changed the return datatype between the components back to an arraylist >> - and I get the same error again. Attached. >> >> Pass-By-Value not supported for ArrayList. >> >> Based on my email yesterday - I have it as I had set it out in the email. >> >> As I had mentioned - I have 3 contributions: ---------- >> qmAppSCA01 (QueryServlet ref: QueryServce; QueryService ref; >> qmController/QueryOrchestrator) >> >> qmController (QueryOrchestraor ref: QueryComposor, QueryExecutor; >> QueryExecutor ref: Person) >> >> domainBCA (Person, PhysicalLocation) >> ---------- >> 1. QueryServet calls QueryService calls QueryOrchestror (passes HashMap) >> >> 2. QueryOrchestrator calls QueryComposer gets parsed Query as string >> 3. QueryOrchestrator calls QueryExecutor with Query string, executes query >> and returns ArrayList of Patients. >> 4. QueryOrchestrator sends ArrayList of patients back to QueryService. >> >> 5. QueryService returns it to QueryServlet which then displays it. >> ---------- >> >> I am attaching my composite files as well. >> >> Unsure where its going wrong. >> Right now just returning an ArrayList - from the reference object each of >> which is in the chain. >> >> I wonder if I am making some basic fundamental errors. >> >> Thanks for your help. >> >> monosij >> >> From the stack trace, the problem is that you are passing a PatientImpl > object as part of the ArrayList, and PatientImpl is not serializable. > > From looking at your composites, PatientImpl is the implementation class > for the PatientComponent component, which provides a Person service. > If this service is intended to represent a single patient (Joe, Mary, Bill, > etc.), you should be using a POJO for this instead of a service. > > If you change PatientImpl from a service to a POJO and make it > serializable, > you should be able to return it within an ArrayList. > > The same would apply to AddressImpl if this is intended to represent the > address of a single patient. > > Simon > > ------------------------------------------------------------------------ >> >> >> HTTP ERROR 500 >> >> 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.QueryOrchestratorImpl.getPatients(QueryOrchestratorImpl.java:30) >> 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 $Proxy33.getPatients(Unknown Source) >> at >> org.rd.qm.impl.QueryServiceImpl.getPatients(QueryServiceImpl.java:22) >> 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.servlet.QueryServlet.service(QueryServlet.java:127) >> 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) >> Caused by: java.io.NotSerializableException: >> com.bca.pearl.domain.impl.PatientImpl >> at >> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1180) >> at >> java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:346) >> at java.util.ArrayList.writeObject(ArrayList.java:673) >> 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 >> java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:962) >> at >> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1480) >> at >> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1416) >> at >> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174) >> at >> java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:346) >> at >> org.apache.tuscany.sca.databinding.javabeans.JavaBeansDataBinding.copy(JavaBeansDataBinding.java:79) >> ... 58 more >> >> >> Caused by: >> >> java.io.NotSerializableException: com.bca.pearl.domain.impl.PatientImpl >> at >> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1180) >> at >> java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:346) >> at java.util.ArrayList.writeObject(ArrayList.java:673) >> 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 >> java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:962) >> at >> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1480) >> at >> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1416) >> at >> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174) >> at >> java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:346) >> at >> org.apache.tuscany.sca.databinding.javabeans.JavaBeansDataBinding.copy(JavaBeansDataBinding.java:79) >> 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.QueryOrchestratorImpl.getPatients(QueryOrchestratorImpl.java:30) >> 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 $Proxy33.getPatients(Unknown Source) >> at >> org.rd.qm.impl.QueryServiceImpl.getPatients(QueryServiceImpl.java:22) >> 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.servlet.QueryServlet.service(QueryServlet.java:127) >> 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) >> >> ------------------------------------------------------------------------ >> /Powered by Jetty:/// >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >
