Monosij Dutta-Roy wrote:
hi Simon - Here's the full trace.
Thanks.
Isn't there a "caused by" trace following this trace? From looking at the
Tuscany runtime code in JavaBeansDataBinding, I would expect to see this.
Simon
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]
<mailto:[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