I got following exception in running where the wsdl defines an
operation without input parameter.

java.lang.IllegalArgumentException: Pass-by-value is not supported for
the given object
        at 
org.apache.tuscany.sca.databinding.javabeans.JavaBeansDataBinding.copy(JavaBeansDataBinding.java:102)
        at 
org.apache.tuscany.sca.databinding.DefaultDataBindingExtensionPoint$LazyDataBinding.copy(DefaultDataBindingExtensionPoint.java:171)
        at 
org.apache.tuscany.sca.core.databinding.wire.PassByValueInterceptor.copy(PassByValueInterceptor.java:235)
        at 
org.apache.tuscany.sca.core.databinding.wire.PassByValueInterceptor.copyFault(PassByValueInterceptor.java:130)
        at 
org.apache.tuscany.sca.core.databinding.wire.PassByValueInterceptor.invoke(PassByValueInterceptor.java:115)
        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:108)
        at 
org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke(JDKInvocationHandler.java:286)
        at 
org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke(JDKInvocationHandler.java:154)
        at $Proxy7.getB1Name(Unknown Source)
        at 
org.apache.tuscany.sca.vtest.wsbinding.nowsdl.NoWsdlTestCase.testNoWsdl(NoWsdlTestCase.java:62)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:79)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:618)
        at 
org.junit.internal.runners.TestMethodRunner.executeMethodBody(TestMethodRunner.java:99)
        at 
org.junit.internal.runners.TestMethodRunner.runUnprotected(TestMethodRunner.java:81)
        at 
org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAndAfterRunner.java:34)
        at 
org.junit.internal.runners.TestMethodRunner.runMethod(TestMethodRunner.java:75)
        at 
org.junit.internal.runners.TestMethodRunner.run(TestMethodRunner.java:45)
        at 
org.junit.internal.runners.TestClassMethodsRunner.invokeTestMethod(TestClassMethodsRunner.java:75)
        at 
org.junit.internal.runners.TestClassMethodsRunner.run(TestClassMethodsRunner.java:36)
        at 
org.junit.internal.runners.TestClassRunner$1.runUnprotected(TestClassRunner.java:42)
        at 
org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAndAfterRunner.java:34)
        at 
org.junit.internal.runners.TestClassRunner.run(TestClassRunner.java:52)
        at 
org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:38)
        at 
org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
        at 
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
        at 
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
        at 
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
        at 
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
Caused by: java.io.NotSerializableException:
org.apache.axiom.om.impl.llom.OMElementImpl
        at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1113)
        at 
java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1467)
        at 
java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1439)
        at 
java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1382)
        at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1111)
        at 
java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1467)
        at 
java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:414)
        at java.lang.Throwable.writeObject(Throwable.java:320)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:79)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:618)
        at 
java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:972)
        at 
java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1431)
        at 
java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1382)
        at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1111)
        at 
java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1467)
        at 
java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:414)
        at java.lang.Throwable.writeObject(Throwable.java:320)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:79)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:618)
        at 
java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:972)
        at 
java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1431)
        at 
java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1382)
        at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1111)
        at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:325)
        at 
org.apache.tuscany.sca.databinding.javabeans.JavaBeansDataBinding.copy(JavaBeansDataBinding.java:71)
        ... 30 more


See getName in attached wsdl.
    <wsdl:operation name="getName">
        <wsdl:output message="tns:getNameResponse"></wsdl:output>
    </wsdl:operation>

Is it a bug?

Thanks
Gilbert
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"; xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"; xmlns:tns="http://vtest.wsbinding.nowsdl"; xmlns:xsd="http://www.w3.org/2001/XMLSchema"; name="BService" targetNamespace="http://vtest.wsbinding.nowsdl";>
  <wsdl:types>
    <xsd:schema targetNamespace="http://vtest.wsbinding.nowsdl"; xmlns:xsd="http://www.w3.org/2001/XMLSchema";>
      <xsd:element name="getString">
        <xsd:complexType>
          <xsd:sequence>
            <xsd:element name="in" type="xsd:string"/>
          </xsd:sequence>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="getStringResponse">
        <xsd:complexType>
          <xsd:sequence>
            <xsd:element name="out" type="xsd:string"/>
          </xsd:sequence>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="getString2">
      	<xsd:complexType>
      		<xsd:sequence>

      			<xsd:element name="in1" type="xsd:string"></xsd:element>
      			<xsd:element name="in2" type="xsd:string"></xsd:element>
      		</xsd:sequence>
      	</xsd:complexType>
      </xsd:element>
      <xsd:element name="getString2Response">
      	<xsd:complexType>
      		<xsd:sequence>
      			<xsd:element name="out" type="xsd:string"></xsd:element>
      		</xsd:sequence>
      	</xsd:complexType>
      </xsd:element>
      <xsd:element name="getInt">
      	<xsd:complexType>
      		<xsd:sequence>
      			<xsd:element name="in" type="xsd:int"></xsd:element>
      		</xsd:sequence>
      	</xsd:complexType>
      </xsd:element>
      <xsd:element name="getIntResponse">
      	<xsd:complexType>
      		<xsd:sequence>
      			<xsd:element name="out" type="xsd:int"></xsd:element>
      		</xsd:sequence>
      	</xsd:complexType>
      </xsd:element>
      <xsd:element name="getName">
      	<xsd:complexType>
      		<xsd:sequence>
      			<xsd:element name="in" type="xsd:string"></xsd:element>
      		</xsd:sequence>
      	</xsd:complexType>
      </xsd:element>
      <xsd:element name="getNameResponse">
      	<xsd:complexType>
      		<xsd:sequence>
      			<xsd:element name="out" type="xsd:string"></xsd:element>
      		</xsd:sequence>
      	</xsd:complexType>
      </xsd:element>
    </xsd:schema>
  </wsdl:types>
  <wsdl:message name="getStringRequest">
    <wsdl:part element="tns:getString" name="parameters"/>
  </wsdl:message>
  <wsdl:message name="getStringResponse">
    <wsdl:part element="tns:getStringResponse" name="parameters"/>
  </wsdl:message>
  <wsdl:message name="getString2Request">
  	<wsdl:part name="parameters" element="tns:getString2"></wsdl:part>
  </wsdl:message>
  <wsdl:message name="getString2Response">
  	<wsdl:part name="parameters" element="tns:getString2Response"></wsdl:part>
  </wsdl:message>
  <wsdl:message name="getIntRequest">
  	<wsdl:part name="parameters" element="tns:getInt"></wsdl:part>
  </wsdl:message>
  <wsdl:message name="getIntResponse">
  	<wsdl:part name="parameters" element="tns:getIntResponse"></wsdl:part>
  </wsdl:message>
  <wsdl:message name="getNameRequest">
  	<wsdl:part name="parameters" element="tns:getName"></wsdl:part>
  </wsdl:message>
  <wsdl:message name="getNameResponse">
  	<wsdl:part name="parameters" element="tns:getNameResponse"></wsdl:part>
  </wsdl:message>
  <wsdl:portType name="BService">
    <wsdl:operation name="getString">
      <wsdl:input message="tns:getStringRequest"/>
      <wsdl:output message="tns:getStringResponse"/>
    </wsdl:operation>
    <wsdl:operation name="getString2">
    	<wsdl:input message="tns:getString2Request"></wsdl:input>
    	<wsdl:output message="tns:getString2Response"></wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="getInt">
    	<wsdl:input message="tns:getIntRequest"></wsdl:input>
    	<wsdl:output message="tns:getIntResponse"></wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="getName">
    	<wsdl:output message="tns:getNameResponse"></wsdl:output>
    </wsdl:operation>
  </wsdl:portType>
  <wsdl:binding name="BServiceSOAP" type="tns:BService">
    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
    <wsdl:operation name="getString">
      <soap:operation soapAction=""/>
      <wsdl:input>
        <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal"/>
      </wsdl:output>
    </wsdl:operation>
  </wsdl:binding>
  <wsdl:service name="BService">
    <wsdl:port binding="tns:BServiceSOAP" name="BServiceSOAP">
      <soap:address location="http://localhost:8080/BService"/>
    </wsdl:port>
  </wsdl:service>
</wsdl:definitions>

Reply via email to