Hi,

Axiom databinding does support copy. Do you have databinding-axiom on your classpath?

Thanks,
Raymond

From: Ramkumar R
Sent: Tuesday, November 04, 2008 4:10 AM
To: [email protected]
Subject: Databinding issue when axis2 service uses OMElement as parameter types.


I am seeing the below shown exception, when axis2 service uses OMElement as parameter types

@Remotable
public interface FileUploadService {
public String saveFile(String filename, OMElement attachment) throws Exception;
}

Exception in thread "main" java.lang.IllegalArgumentException: Pass-by-value is not supported for the given object at org.apache.tuscany.sca.databinding.javabeans.JavaBeansDataBinding.copy(JavaBeansDataBinding.java:106) at org.apache.tuscany.sca.databinding.DefaultDataBindingExtensionPoint$LazyDataBinding.copy(DefaultDataBindingExtensionPoint.java:155) at org.apache.tuscany.sca.core.databinding.wire.PassByValueInterceptor.copy(PassByValueInterceptor.java:256) at org.apache.tuscany.sca.core.databinding.wire.PassByValueInterceptor.copyFault(PassByValueInterceptor.java:136) at org.apache.tuscany.sca.core.databinding.wire.PassByValueInterceptor.invoke(PassByValueInterceptor.java:119) at org.apache.tuscany.sca.binding.sca.impl.SCABindingInvoker.invoke(SCABindingInvoker.java:61) at org.apache.tuscany.sca.core.databinding.wire.PassByValueInterceptor.invoke(PassByValueInterceptor.java:112) at org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke(JDKInvocationHandler.java:287) at org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke(JDKInvocationHandler.java:154)
   at $Proxy14.getGreetings(Unknown Source)
   at helloworld.HelloWorldClient.main(HelloWorldClient.java:47)
Caused by: java.io.NotSerializableException: com.sun.xml.bind.v2.model.nav.ReflectionNavigator$4
   at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1108)
   at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:324)
   at java.util.ArrayList.writeObject(ArrayList.java:595)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
   at java.lang.reflect.Method.invoke(Method.java:615)
at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:972) at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1426) at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1377)
   at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1106)
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1462) at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1434) at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1377)
   at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1106)
   at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:324)
   at java.util.ArrayList.writeObject(ArrayList.java:595)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
   at java.lang.reflect.Method.invoke(Method.java:615)
at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:972) at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1426) at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1377)
   at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1106)
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1462) at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1434) at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1377)
   at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1106)
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1462) at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1434) at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1377)
   at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1106)
   at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:324)
   at java.util.ArrayList.writeObject(ArrayList.java:595)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
   at java.lang.reflect.Method.invoke(Method.java:615)
at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:972) at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1426) at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1377)
   at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1106)
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1462) at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1434) at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1377)
   at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1106)
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1462) at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1434) at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1377)
   at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1106)
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1462) at java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:413)
   at java.lang.Throwable.writeObject(Throwable.java:320)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
   at java.lang.reflect.Method.invoke(Method.java:615)
at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:972) at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1426) at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1377)
   at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1106)
   at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:324)
at org.apache.tuscany.sca.databinding.javabeans.JavaBeansDataBinding.copy(JavaBeansDataBinding.java:75)
   ... 10 more

Looks like pass-by-value is not supported for OMElement. Can someone clarify, why we have it this way?

--
Thanks & Regards,
Ramkumar Ramalingam

Reply via email to