You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tuscany.apache.org by "Simon Nash (JIRA)" <de...@tuscany.apache.org> on 2009/09/10 09:07:57 UTC

[jira] Commented: (TUSCANY-3267) doesn't work when is used

    [ https://issues.apache.org/jira/browse/TUSCANY-3267?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12753469#action_12753469 ] 

Simon Nash commented on TUSCANY-3267:
-------------------------------------

It turns out that the problem also shows up on recent builds of the 1.5.1 branch.  It is caused by the changes in revisions r810694 (1.5.1) and r810726 (1.x).  These changes cause Interface2WSDLGenerator to delegate the wrapper schema generation to JAXB instead of doing this in inline code.  As a result, the wrapper elements are generated with nillable="true" which causes the exception.

The following works:

<xs:schema targetNamespace="http://www.tuscanyscatours.com/Payment/"
        version="1.0" xmlns:tns="http://www.tuscanyscatours.com/Payment/"
        xmlns:xs="http://www.w3.org/2001/XMLSchema">

    <xs:element name="makePaymentMember" type="tns:MakePaymentMemberType"/>
    <xs:element name="makePaymentMemberResponse" type="tns:MakePaymentMemberResponseType"/>

    <xs:complexType name="MakePaymentMemberType"><xs:sequence>
    <xs:element name="CustomerId" type="xs:string"/>
    <xs:element name="Amount" type="xs:float"/>
    </xs:sequence></xs:complexType>

    <xs:complexType name="MakePaymentMemberResponseType"><xs:sequence>
    <xs:element name="Status" type="xs:string"/>
    </xs:sequence></xs:complexType>
</xs:schema>

The following doesn't work:

<xs:schema targetNamespace="http://www.tuscanyscatours.com/Payment/"
        version="1.0" xmlns:tns="http://www.tuscanyscatours.com/Payment/"
        xmlns:xs="http://www.w3.org/2001/XMLSchema">

    <xs:element name="makePaymentMember" nillable="true" type="tns:MakePaymentMemberType"/>
    <xs:element name="makePaymentMemberResponse" nillable="true" type="tns:MakePaymentMemberResponseType"/>

    <xs:complexType name="MakePaymentMemberType"><xs:sequence>
    <xs:element name="CustomerId" type="xs:string"/>
    <xs:element name="Amount" type="xs:float"/>
    </xs:sequence></xs:complexType>

    <xs:complexType name="MakePaymentMemberResponseType"><xs:sequence>
    <xs:element name="Status" type="xs:string"/>
    </xs:sequence></xs:complexType>
</xs:schema>


> <binding.ws> doesn't work when <interface.java> is used
> -------------------------------------------------------
>
>                 Key: TUSCANY-3267
>                 URL: https://issues.apache.org/jira/browse/TUSCANY-3267
>             Project: Tuscany
>          Issue Type: Bug
>          Components: Java SCA Core Runtime
>    Affects Versions: Java-SCA-1.5.1
>            Reporter: Simon Nash
>            Priority: Blocker
>             Fix For: Java-SCA-Next
>
>
> If a service is exposed using binding.ws only and a proxy to that service is obtained by calling SCAClient.getService(), the proxy throws IndexOutOfBoundsException when invoked.  If a <binding.sca/> element is added to the service, the proxy works correctly.
> To reproduce this problem, modify
>   svn.apache.org/repos/asf/tuscany/sandbox/travelsample/contributions/payment-java/src/main/resources/payment.composite
> to remove the <binding.sca/> element on the Payment service, then build the payment-java module.  This produces the following stack trace.
> Running scatours.payment.PaymentTestCase
> 09-Sep-2009 10:32:27 org.apache.tuscany.sca.node.impl.NodeImpl <init>
> INFO: Creating node: null
> 09-Sep-2009 10:32:28 org.apache.tuscany.sca.node.impl.NodeImpl configureNode
> INFO: Loading contribution: file:/F:/book/samp16/travelsample/contributions/paym
> ent-java/./target/classes/
> 09-Sep-2009 10:32:29 org.apache.tuscany.sca.node.impl.NodeImpl configureNode
> INFO: Loading contribution: file:/F:/book/samp16/travelsample/contributions/paym
> ent-java/../../contributions/creditcard-payment-jaxb/target/classes/
> 09-Sep-2009 10:32:29 org.apache.tuscany.sca.node.impl.NodeImpl start
> INFO: Starting node: null
> 09-Sep-2009 10:32:30 org.apache.tuscany.sca.http.jetty.JettyServer addServletMap
> ping
> INFO: Added Servlet mapping: http://Angels:8081/Payment
> 09-Sep-2009 10:32:30 org.apache.tuscany.sca.http.jetty.JettyServer addServletMap
> ping
> INFO: Added Servlet mapping: http://Angels:8082/CreditCardPayment
> 09-Sep-2009 10:32:30 org.apache.tuscany.sca.node.impl.NodeImpl stop
> INFO: Stopping node: null
> 09-Sep-2009 10:32:30 org.apache.tuscany.sca.http.jetty.JettyServer removeServlet
> Mapping
> INFO: Removed Servlet mapping: /Payment
> 09-Sep-2009 10:32:30 org.apache.tuscany.sca.http.jetty.JettyServer removeServlet
> Mapping
> INFO: Removed Servlet mapping: /CreditCardPayment
> Tests run: 2, Failures: 0, Errors: 1, Skipped: 1, Time elapsed: 2.434 sec <<< FA
> ILURE!
> testPayment(scatours.payment.PaymentTestCase)  Time elapsed: 0.062 sec  <<< ERRO
> R!
> java.lang.IndexOutOfBoundsException: Index: 1, Size: 1
>         at java.util.ArrayList.RangeCheck(ArrayList.java:547)
>         at java.util.ArrayList.get(ArrayList.java:322)
>         at org.apache.tuscany.sca.core.databinding.transformers.Input2InputTrans
> former.transform(Input2InputTransformer.java:249)
>         at org.apache.tuscany.sca.core.databinding.transformers.Input2InputTrans
> former.transform(Input2InputTransformer.java:45)
>         at org.apache.tuscany.sca.databinding.impl.MediatorImpl.mediate(Mediator
> Impl.java:113)
>         at org.apache.tuscany.sca.databinding.impl.MediatorImpl.mediateInput(Med
> iatorImpl.java:431)
>         at org.apache.tuscany.sca.core.databinding.wire.DataTransformationInterc
> eptor.invoke(DataTransformationInterceptor.java:65)
>         at org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke(JD
> KInvocationHandler.java:346)
>         at org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke(JD
> KInvocationHandler.java:193)
>         at $Proxy49.makePaymentMember(Unknown Source)
>         at scatours.payment.PaymentTestCase.testPayment(PaymentTestCase.java:48)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
> java:39)
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
> sorImpl.java:25)
>         at java.lang.reflect.Method.invoke(Method.java:597)
>         at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(Framework
> Method.java:44)
>         at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCal
> lable.java:15)
>         at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMe
> thod.java:41)
>         at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMet
> hod.java:20)
>         at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.
> java:28)
>         at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.ja
> va:31)
>         at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRun
> ner.java:73)
>         at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRun
> ner.java:46)
>         at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:180)
>         at org.junit.runners.ParentRunner.access$000(ParentRunner.java:41)
>         at org.junit.runners.ParentRunner$1.evaluate(ParentRunner.java:173)
>         at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.
> java:28)
>         at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.ja
> va:31)
>         at org.junit.runners.ParentRunner.run(ParentRunner.java:220)
>         at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.
> java:62)
>         at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTes
> tSet(AbstractDirectoryTestSuite.java:138)
>         at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(Ab
> stractDirectoryTestSuite.java:125)
>         at org.apache.maven.surefire.Surefire.run(Surefire.java:132)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
> java:39)
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
> sorImpl.java:25)
>         at java.lang.reflect.Method.invoke(Method.java:597)
>         at org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(Su
> refireBooter.java:308)
>         at org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.j
> ava:879)
> Results :
> Tests in error:
>   testPayment(scatours.payment.PaymentTestCase)
> Tests run: 2, Failures: 0, Errors: 1, Skipped: 1

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.