You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tuscany.apache.org by "Scott Kurz (JIRA)" <de...@tuscany.apache.org> on 2011/07/20 17:34:58 UTC

[jira] [Updated] (TUSCANY-3901) Problem unwrapping repeated elements (for maxOccurs>1) payloads using DOM databinding (from JAX-WS binding.ws impl)

     [ https://issues.apache.org/jira/browse/TUSCANY-3901?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Scott Kurz updated TUSCANY-3901:
--------------------------------

    Assignee: Scott Kurz
     Summary: Problem unwrapping repeated elements (for maxOccurs>1) payloads using DOM databinding (from JAX-WS binding.ws impl)  (was: The WSDL generated by binding.ws for a method with an array as input generates errors when invoking this method.)

> Problem unwrapping repeated elements (for maxOccurs>1) payloads using DOM databinding (from JAX-WS binding.ws impl)
> -------------------------------------------------------------------------------------------------------------------
>
>                 Key: TUSCANY-3901
>                 URL: https://issues.apache.org/jira/browse/TUSCANY-3901
>             Project: Tuscany
>          Issue Type: Bug
>    Affects Versions: Java-SCA-2.0-Beta2
>            Reporter: Antonio De Berardis
>            Assignee: Scott Kurz
>              Labels: array, wsdl
>
> @Remotable
> public interface CrmService {
> public void test(String[] arr);
> }
> generate the following WSDL:
> <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>
> Calling the method form a simple java client causes:
> 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

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira