You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@tuscany.apache.org by Antonio De Berardis <an...@chevaliergestion.fr> on 2011/07/20 12:08:00 UTC

Array and web service problem with tuscany 2

Hi,
I have a service with a Object array as input like this: 

@Remotable
public interface CrmService {
	
	public void test(String[] arr);
	
}

the service is exposed as web service and the WSDL is generated by
Tuscany.

I can generate a Java client, but when I call the service the server
says:

GRAVE: java.lang.IllegalArgumentException: Argument is not an array
org.apache.tuscany.sca.databinding.TransformationException:
java.lang.IllegalArgumentException: Argument is not an array
	at
org.apache.tuscany.sca.core.databinding.transformers.Array2ArrayTransformer.transform(Array2ArrayTransformer.java:100)
	at org.apache.tuscany.sca.databinding.DefaultTransformerExtensionPoint
$LazyPullTransformer.transform(DefaultTransformerExtensionPoint.java:209)
	at
org.apache.tuscany.sca.databinding.impl.MediatorImpl.mediate(MediatorImpl.java:116)
	at
org.apache.tuscany.sca.core.databinding.transformers.Input2InputTransformer.transform(Input2InputTransformer.java:232)
	at
org.apache.tuscany.sca.core.databinding.transformers.Input2InputTransformer.transform(Input2InputTransformer.java:46)
	at org.apache.tuscany.sca.databinding.DefaultTransformerExtensionPoint
$LazyPullTransformer.transform(DefaultTransformerExtensionPoint.java:209)
	at
org.apache.tuscany.sca.databinding.impl.MediatorImpl.mediate(MediatorImpl.java:116)
	at
org.apache.tuscany.sca.databinding.impl.MediatorImpl.mediateInput(MediatorImpl.java:444)
	at
org.apache.tuscany.sca.core.databinding.wire.DataTransformationInterceptor.processRequest(DataTransformationInterceptor.java:69)
	at
org.apache.tuscany.sca.core.invocation.InterceptorAsyncImpl.invoke(InterceptorAsyncImpl.java:57)
	at
org.apache.tuscany.sca.core.invocation.RuntimeInvoker.invoke(RuntimeInvoker.java:125)
	at
org.apache.tuscany.sca.core.invocation.RuntimeInvoker.invoke(RuntimeInvoker.java:108)
	at
org.apache.tuscany.sca.core.assembly.impl.RuntimeEndpointImpl.invoke(RuntimeEndpointImpl.java:298)
	at
org.apache.tuscany.sca.binding.ws.jaxws.JAXWSBindingProvider.invoke(JAXWSBindingProvider.java:207)
	at
org.apache.tuscany.sca.binding.ws.jaxws.JAXWSBindingProvider.invoke(JAXWSBindingProvider.java:61)
	at com.sun.xml.internal.ws.api.server.InstanceResolver
$1.invokeProvider(InstanceResolver.java:245)
	at com.sun.xml.internal.ws.server.InvokerTube
$2.invokeProvider(InvokerTube.java:145)
	at
com.sun.xml.internal.ws.server.provider.SyncProviderInvokerTube.processRequest(SyncProviderInvokerTube.java:67)
	at com.sun.xml.internal.ws.api.pipe.Fiber.__doRun(Fiber.java:587)
	at com.sun.xml.internal.ws.api.pipe.Fiber._doRun(Fiber.java:546)
	at com.sun.xml.internal.ws.api.pipe.Fiber.doRun(Fiber.java:531)
	at com.sun.xml.internal.ws.api.pipe.Fiber.runSync(Fiber.java:428)
	at com.sun.xml.internal.ws.server.WSEndpointImpl
$2.process(WSEndpointImpl.java:232)
	at com.sun.xml.internal.ws.transport.http.HttpAdapter
$HttpToolkit.handle(HttpAdapter.java:460)
	at
com.sun.xml.internal.ws.transport.http.HttpAdapter.handle(HttpAdapter.java:233)
	at
com.sun.xml.internal.ws.transport.http.server.WSHttpHandler.handleExchange(WSHttpHandler.java:95)
	at
com.sun.xml.internal.ws.transport.http.server.WSHttpHandler.handle(WSHttpHandler.java:80)
	at com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:83)
	at sun.net.httpserver.AuthFilter.doFilter(AuthFilter.java:83)
	at com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:86)
	at sun.net.httpserver.ServerImpl$Exchange
$LinkHandler.handle(ServerImpl.java:589)
	at com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:83)
	at sun.net.httpserver.ServerImpl$Exchange.run(ServerImpl.java:561)
	at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
	at java.util.concurrent.ThreadPoolExecutor
$Worker.run(ThreadPoolExecutor.java:603)
	at java.lang.Thread.run(Thread.java:679)
Caused by: java.lang.IllegalArgumentException: Argument is not an array
	at java.lang.reflect.Array.getLength(Native Method)
	at
org.apache.tuscany.sca.core.databinding.transformers.Array2ArrayTransformer.transform(Array2ArrayTransformer.java:89)
	... 35 more

Re: Array and web service problem with tuscany 2

Posted by Scott Kurz <sk...@gmail.com>.
Great...I'll take a look, and by the way I'd expect that if you can
use the Axis2-based Web Services binding, you'd bypass this issue.
(I'd have to leave it to others to suggest good ways to do that,
depending on your exact environment).

Scott

Re: Array and web service problem with tuscany 2

Posted by Antonio De Berardis <an...@chevaliergestion.fr>.
Hi,
thank you for the response,  I created a bug in JIRA.

Antonio

On mer., 2011-07-20 at 10:13 -0400, Scott Kurz wrote:
> I'm guessing this is a bug in the DOMWrapperHandler (the JAX-WS
> binding.ws uses DOM as databinding).
> 
> I don't see that the unwrapping does anything to group same-QName
> elements (like we do in the OMElementWrapperHandler for AXIOM).
> 
> Antonio, can you please open a JIRA?
> 
> Scott
> 
On mer., 2011-07-20 at 15:16 +0100, Mike Edwards wrote:

> The WSDL PortType has a single operation "test" with an input message "test".
>
> The "test" input message is of type <test> - and the <test/> element is then declared as a complex 
> type which is a sequence of <arg0/> elements, each of which are of type xs:string.
> 
> However, I note that the WSDL defines a complex type called "stringArray", which is a sequence of 
> <item/> elements of type xs:string.
> 
> I strongly suspect that the <test/> element SHOULD have a single <arg0/> element of type 
> "stringArray" - otherwise why define the stringArray type at all.
> 
> Certainly, the WSDL is telling the binding code to expect a string rather than a stringArray, which 
> is very likely going to cause the problem you see when you call the service.
>
> Since the WSDL is being generated by Tuscany, you can't just change the WSDL to fix this.
> It may be that you can add some JAXB annotations to the service interface to get around this problem 
> - by making it explicit to JAXB the WSDL <-> Java behaviour you are expecting.
> 
> 
> Yours,  Mike. 
>

Re: Array and web service problem with tuscany 2

Posted by Simon Nash <na...@apache.org>.
Mike Edwards wrote:
> On 20/07/2011 15:13, Scott Kurz wrote:
>> I'm guessing this is a bug in the DOMWrapperHandler (the JAX-WS
>> binding.ws uses DOM as databinding).
>>
>> I don't see that the unwrapping does anything to group same-QName
>> elements (like we do in the OMElementWrapperHandler for AXIOM).
>>
>> Antonio, can you please open a JIRA?
>>
>> Scott
>>
> Scott,
> 
> Any idea how the WSDL ends up messed up?  A type is created for the 
> array of strings and is then never used.
> 
> 
> Yours,  Mike.
> 
> 
This unused type is a "feature" of the JAXB mapping for Java arrays.

The <test> element does contain a string array.  This is indicated
by the maxOccurs="unbounded" attribute.

However, the WSDL file is unusable as it stands because of its lack
of namespace/prefix information.

   Simon


Re: Array and web service problem with tuscany 2

Posted by Scott Kurz <sk...@gmail.com>.
No, not sure why we don't use that type...

What I'd like to do and could in the next day or so, is port the
OMElementWrapperHandlerTestCase to DOM and give that a run.  That test
covers payloads with repeated elements (maxOccurs > 1) and omitted
elements (minOccurs="0"), and I'm guessing it would reproduce
Antonio's problem.

Scott

Re: Array and web service problem with tuscany 2

Posted by Mike Edwards <mi...@gmail.com>.
On 20/07/2011 15:13, Scott Kurz wrote:
> I'm guessing this is a bug in the DOMWrapperHandler (the JAX-WS
> binding.ws uses DOM as databinding).
>
> I don't see that the unwrapping does anything to group same-QName
> elements (like we do in the OMElementWrapperHandler for AXIOM).
>
> Antonio, can you please open a JIRA?
>
> Scott
>
Scott,

Any idea how the WSDL ends up messed up?  A type is created for the array of strings and is then 
never used.


Yours,  Mike.

Re: Array and web service problem with tuscany 2

Posted by Scott Kurz <sk...@gmail.com>.
I'm guessing this is a bug in the DOMWrapperHandler (the JAX-WS
binding.ws uses DOM as databinding).

I don't see that the unwrapping does anything to group same-QName
elements (like we do in the OMElementWrapperHandler for AXIOM).

Antonio, can you please open a JIRA?

Scott

Re: Array and web service problem with tuscany 2

Posted by Mike Edwards <mi...@gmail.com>.
On 20/07/2011 14:49, Antonio De Berardis wrote:
> The Wsdl generated by Tuscany is:
>
> <wsdl:definitions name="CrmServiceService" targetNamespace="http://interfaces/"> <wsdl:types>
> <xs:schema targetNamespace="http://jaxb.dev.java.net/array" version="1.0"> <xs:complexType
> final="#all" name="stringArray"> <xs:sequence> <xs:element maxOccurs="unbounded" minOccurs="0"
> name="item" nillable="true" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:schema>
> <xs:schema attributeFormDefault="qualified" elementFormDefault="unqualified"
> targetNamespace="http://interfaces/"> <xs:element name="test"> <xs:complexType> <xs:sequence>
> <xs:element maxOccurs="unbounded" minOccurs="0" name="arg0" nillable="true" type="xs:string"/>
> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="testResponse"> <xs:complexType/>
> </xs:element> </xs:schema> </wsdl:types> <wsdl:message name="test"> <wsdl:part name="test"
> element="test"> </wsdl:part> </wsdl:message> <wsdl:message name="testResponse"> <wsdl:part
> name="testResponse" element="testResponse"> </wsdl:part> </wsdl:message> <wsdl:portType
> name="CrmService"> <wsdl:operation name="test"> <wsdl:input message="test"> </wsdl:input>
> <wsdl:output message="testResponse"> </wsdl:output> </wsdl:operation> </wsdl:portType>
> <wsdl:binding name="CrmServiceBinding" type="CrmService"> <SOAP:binding style="document"
> transport="http://schemas.xmlsoap.org/soap/http"/> <wsdl:operation name="test"> <SOAP:operation/>
> <wsdl:input> <SOAP:body use="literal"/> </wsdl:input> <wsdl:output> <SOAP:body use="literal"/>
> </wsdl:output> </wsdl:operation> </wsdl:binding> <wsdl:service name="CrmService"> <wsdl:port
> name="CrmServiceSOAP11Port" binding="CrmServiceBinding"> <SOAP:address
> location="http://localhost:8087/CrmComponent/CrmService"/> </wsdl:port> </wsdl:service>
> </wsdl:definitions>
> I use eclipse to generate the web service client and a simple call to the service cause the exception
>
> public static void main(String[] args) {
>
> CrmServiceProxy p=new CrmServiceProxy();
> String [] stringArray=new String[2];
> stringArray[0]="a";
> stringArray[1]="b";
> try {
> p.test(stringArray);
> } catch (RemoteException e) {
> e.printStackTrace();
> }
> }
>
>
Antonio,

Thanks for sending that material.

The WSDL is curious and I suspect there is a Tuscany bug here somewhere.

The WSDL PortType has a single operation "test" with an input message "test".

The "test" input message is of type <test> - and the <test/> element is then declared as a complex 
type which is a sequence of <arg0/> elements, each of which are of type xs:string.

However, I note that the WSDL defines a complex type called "stringArray", which is a sequence of 
<item/> elements of type xs:string.

I strongly suspect that the <test/> element SHOULD have a single <arg0/> element of type 
"stringArray" - otherwise why define the stringArray type at all.

Certainly, the WSDL is telling the binding code to expect a string rather than a stringArray, which 
is very likely going to cause the problem you see when you call the service.

Since the WSDL is being generated by Tuscany, you can't just change the WSDL to fix this.
It may be that you can add some JAXB annotations to the service interface to get around this problem 
- by making it explicit to JAXB the WSDL <-> Java behaviour you are expecting.


Yours,  Mike.


Re: Array and web service problem with tuscany 2

Posted by Antonio De Berardis <an...@chevaliergestion.fr>.
The Wsdl generated by Tuscany  is:

<wsdl:definitions name="CrmServiceService" targetNamespace="http://interfaces/">
    <wsdl:types>
        <xs:schema targetNamespace="http://jaxb.dev.java.net/array"
version="1.0">
            <xs:complexType final="#all" name="stringArray">
                <xs:sequence>
                    <xs:element maxOccurs="unbounded" minOccurs="0"
name="item" nillable="true" type="xs:string"/>
                </xs:sequence>
            </xs:complexType>
        </xs:schema>
        <xs:schema attributeFormDefault="qualified"
elementFormDefault="unqualified" targetNamespace="http://interfaces/">
            <xs:element name="test">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element maxOccurs="unbounded" minOccurs="0"
name="arg0" nillable="true" type="xs:string"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="testResponse">
                <xs:complexType/>
            </xs:element>
        </xs:schema>
    </wsdl:types>
    <wsdl:message name="test">
        <wsdl:part name="test" element="test"> </wsdl:part>
    </wsdl:message>
    <wsdl:message name="testResponse">
        <wsdl:part name="testResponse" element="testResponse">
</wsdl:part>
    </wsdl:message>
    <wsdl:portType name="CrmService">
        <wsdl:operation name="test">
            <wsdl:input message="test"> </wsdl:input>
            <wsdl:output message="testResponse"> </wsdl:output>
        </wsdl:operation>
    </wsdl:portType>
    <wsdl:binding name="CrmServiceBinding" type="CrmService">
        <SOAP:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>
        <wsdl:operation name="test">
            <SOAP:operation/>
            <wsdl:input>
                <SOAP:body use="literal"/>
            </wsdl:input>
            <wsdl:output>
                <SOAP:body use="literal"/>
            </wsdl:output>
        </wsdl:operation>
    </wsdl:binding>
    <wsdl:service name="CrmService">
        <wsdl:port name="CrmServiceSOAP11Port"
binding="CrmServiceBinding">
            <SOAP:address
location="http://localhost:8087/CrmComponent/CrmService"/>
        </wsdl:port>
    </wsdl:service>
</wsdl:definitions>

I use eclipse to generate the web service client and a simple call to
the service cause the exception

public static void main(String[] args) {
	
		CrmServiceProxy p=new CrmServiceProxy();
		String [] stringArray=new String[2];
		stringArray[0]="a";
		stringArray[1]="b";
		try {
			p.test(stringArray);
		} catch (RemoteException e) {
			e.printStackTrace();
		}
	}




On mer., 2011-07-20 at 12:18 +0100, Mike Edwards wrote:

> Antonio,
> 
> 2 questions:
> 
> 1) what does the WSDL for the service look like?
> 2) how are you calling the service?
> 
> Yours,  Mike
> 
> On 20/07/2011 11:08, Antonio De Berardis wrote:
> > Hi,
> > I have a service with a Object array as input like this:
> >
> > @Remotable
> > public interface CrmService {
> >
> > public void test(String[] arr);
> >
> > }
> >
> > the service is exposed as web service and the WSDL is generated by Tuscany.
> >
> > I can generate a Java client, but when I call the service the server says:
> >
> > GRAVE: java.lang.IllegalArgumentException: Argument is not an array
> > org.apache.tuscany.sca.databinding.TransformationException: java.lang.IllegalArgumentException:
> > Argument is not an array
> > at
> > org.apache.tuscany.sca.core.databinding.transformers.Array2ArrayTransformer.transform(Array2ArrayTransformer.java:100)
> > at
> > org.apache.tuscany.sca.databinding.DefaultTransformerExtensionPoint$LazyPullTransformer.transform(DefaultTransformerExtensionPoint.java:209)
> > at org.apache.tuscany.sca.databinding.impl.MediatorImpl.mediate(MediatorImpl.java:116)
> > at
> > org.apache.tuscany.sca.core.databinding.transformers.Input2InputTransformer.transform(Input2InputTransformer.java:232)
> > at
> > org.apache.tuscany.sca.core.databinding.transformers.Input2InputTransformer.transform(Input2InputTransformer.java:46)
> > at
> > org.apache.tuscany.sca.databinding.DefaultTransformerExtensionPoint$LazyPullTransformer.transform(DefaultTransformerExtensionPoint.java:209)
> > at org.apache.tuscany.sca.databinding.impl.MediatorImpl.mediate(MediatorImpl.java:116)
> > at org.apache.tuscany.sca.databinding.impl.MediatorImpl.mediateInput(MediatorImpl.java:444)
> > at
> > org.apache.tuscany.sca.core.databinding.wire.DataTransformationInterceptor.processRequest(DataTransformationInterceptor.java:69)
> > at org.apache.tuscany.sca.core.invocation.InterceptorAsyncImpl.invoke(InterceptorAsyncImpl.java:57)
> > at org.apache.tuscany.sca.core.invocation.RuntimeInvoker.invoke(RuntimeInvoker.java:125)
> > at org.apache.tuscany.sca.core.invocation.RuntimeInvoker.invoke(RuntimeInvoker.java:108)
> > at org.apache.tuscany.sca.core.assembly.impl.RuntimeEndpointImpl.invoke(RuntimeEndpointImpl.java:298)
> > at org.apache.tuscany.sca.binding.ws.jaxws.JAXWSBindingProvider.invoke(JAXWSBindingProvider.java:207)
> > at org.apache.tuscany.sca.binding.ws.jaxws.JAXWSBindingProvider.invoke(JAXWSBindingProvider.java:61)
> > at com.sun.xml.internal.ws.api.server.InstanceResolver$1.invokeProvider(InstanceResolver.java:245)
> > at com.sun.xml.internal.ws.server.InvokerTube$2.invokeProvider(InvokerTube.java:145)
> > at
> > com.sun.xml.internal.ws.server.provider.SyncProviderInvokerTube.processRequest(SyncProviderInvokerTube.java:67)
> > at com.sun.xml.internal.ws.api.pipe.Fiber.__doRun(Fiber.java:587)
> > at com.sun.xml.internal.ws.api.pipe.Fiber._doRun(Fiber.java:546)
> > at com.sun.xml.internal.ws.api.pipe.Fiber.doRun(Fiber.java:531)
> > at com.sun.xml.internal.ws.api.pipe.Fiber.runSync(Fiber.java:428)
> > at com.sun.xml.internal.ws.server.WSEndpointImpl$2.process(WSEndpointImpl.java:232)
> > at com.sun.xml.internal.ws.transport.http.HttpAdapter$HttpToolkit.handle(HttpAdapter.java:460)
> > at com.sun.xml.internal.ws.transport.http.HttpAdapter.handle(HttpAdapter.java:233)
> > at com.sun.xml.internal.ws.transport.http.server.WSHttpHandler.handleExchange(WSHttpHandler.java:95)
> > at com.sun.xml.internal.ws.transport.http.server.WSHttpHandler.handle(WSHttpHandler.java:80)
> > at com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:83)
> > at sun.net.httpserver.AuthFilter.doFilter(AuthFilter.java:83)
> > at com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:86)
> > at sun.net.httpserver.ServerImpl$Exchange$LinkHandler.handle(ServerImpl.java:589)
> > at com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:83)
> > at sun.net.httpserver.ServerImpl$Exchange.run(ServerImpl.java:561)
> > at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
> > at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
> > at java.lang.Thread.run(Thread.java:679)
> > Caused by: java.lang.IllegalArgumentException: Argument is not an array
> > at java.lang.reflect.Array.getLength(Native Method)
> > at
> > org.apache.tuscany.sca.core.databinding.transformers.Array2ArrayTransformer.transform(Array2ArrayTransformer.java:89)
> > ... 35 more
> 
> 



Re: Array and web service problem with tuscany 2

Posted by Mike Edwards <mi...@gmail.com>.
Antonio,

2 questions:

1) what does the WSDL for the service look like?
2) how are you calling the service?

Yours,  Mike

On 20/07/2011 11:08, Antonio De Berardis wrote:
> Hi,
> I have a service with a Object array as input like this:
>
> @Remotable
> public interface CrmService {
>
> public void test(String[] arr);
>
> }
>
> the service is exposed as web service and the WSDL is generated by Tuscany.
>
> I can generate a Java client, but when I call the service the server says:
>
> GRAVE: java.lang.IllegalArgumentException: Argument is not an array
> org.apache.tuscany.sca.databinding.TransformationException: java.lang.IllegalArgumentException:
> Argument is not an array
> at
> org.apache.tuscany.sca.core.databinding.transformers.Array2ArrayTransformer.transform(Array2ArrayTransformer.java:100)
> at
> org.apache.tuscany.sca.databinding.DefaultTransformerExtensionPoint$LazyPullTransformer.transform(DefaultTransformerExtensionPoint.java:209)
> at org.apache.tuscany.sca.databinding.impl.MediatorImpl.mediate(MediatorImpl.java:116)
> at
> org.apache.tuscany.sca.core.databinding.transformers.Input2InputTransformer.transform(Input2InputTransformer.java:232)
> at
> org.apache.tuscany.sca.core.databinding.transformers.Input2InputTransformer.transform(Input2InputTransformer.java:46)
> at
> org.apache.tuscany.sca.databinding.DefaultTransformerExtensionPoint$LazyPullTransformer.transform(DefaultTransformerExtensionPoint.java:209)
> at org.apache.tuscany.sca.databinding.impl.MediatorImpl.mediate(MediatorImpl.java:116)
> at org.apache.tuscany.sca.databinding.impl.MediatorImpl.mediateInput(MediatorImpl.java:444)
> at
> org.apache.tuscany.sca.core.databinding.wire.DataTransformationInterceptor.processRequest(DataTransformationInterceptor.java:69)
> at org.apache.tuscany.sca.core.invocation.InterceptorAsyncImpl.invoke(InterceptorAsyncImpl.java:57)
> at org.apache.tuscany.sca.core.invocation.RuntimeInvoker.invoke(RuntimeInvoker.java:125)
> at org.apache.tuscany.sca.core.invocation.RuntimeInvoker.invoke(RuntimeInvoker.java:108)
> at org.apache.tuscany.sca.core.assembly.impl.RuntimeEndpointImpl.invoke(RuntimeEndpointImpl.java:298)
> at org.apache.tuscany.sca.binding.ws.jaxws.JAXWSBindingProvider.invoke(JAXWSBindingProvider.java:207)
> at org.apache.tuscany.sca.binding.ws.jaxws.JAXWSBindingProvider.invoke(JAXWSBindingProvider.java:61)
> at com.sun.xml.internal.ws.api.server.InstanceResolver$1.invokeProvider(InstanceResolver.java:245)
> at com.sun.xml.internal.ws.server.InvokerTube$2.invokeProvider(InvokerTube.java:145)
> at
> com.sun.xml.internal.ws.server.provider.SyncProviderInvokerTube.processRequest(SyncProviderInvokerTube.java:67)
> at com.sun.xml.internal.ws.api.pipe.Fiber.__doRun(Fiber.java:587)
> at com.sun.xml.internal.ws.api.pipe.Fiber._doRun(Fiber.java:546)
> at com.sun.xml.internal.ws.api.pipe.Fiber.doRun(Fiber.java:531)
> at com.sun.xml.internal.ws.api.pipe.Fiber.runSync(Fiber.java:428)
> at com.sun.xml.internal.ws.server.WSEndpointImpl$2.process(WSEndpointImpl.java:232)
> at com.sun.xml.internal.ws.transport.http.HttpAdapter$HttpToolkit.handle(HttpAdapter.java:460)
> at com.sun.xml.internal.ws.transport.http.HttpAdapter.handle(HttpAdapter.java:233)
> at com.sun.xml.internal.ws.transport.http.server.WSHttpHandler.handleExchange(WSHttpHandler.java:95)
> at com.sun.xml.internal.ws.transport.http.server.WSHttpHandler.handle(WSHttpHandler.java:80)
> at com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:83)
> at sun.net.httpserver.AuthFilter.doFilter(AuthFilter.java:83)
> at com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:86)
> at sun.net.httpserver.ServerImpl$Exchange$LinkHandler.handle(ServerImpl.java:589)
> at com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:83)
> at sun.net.httpserver.ServerImpl$Exchange.run(ServerImpl.java:561)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
> at java.lang.Thread.run(Thread.java:679)
> Caused by: java.lang.IllegalArgumentException: Argument is not an array
> at java.lang.reflect.Array.getLength(Native Method)
> at
> org.apache.tuscany.sca.core.databinding.transformers.Array2ArrayTransformer.transform(Array2ArrayTransformer.java:89)
> ... 35 more