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