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