You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cxf.apache.org by "tom mckiernan (JIRA)" <ji...@apache.org> on 2010/10/18 15:55:23 UTC

[jira] Created: (CXF-3071) CXF to .NET ArrayOfXXX interop issue

CXF to .NET ArrayOfXXX interop issue
------------------------------------

                 Key: CXF-3071
                 URL: https://issues.apache.org/jira/browse/CXF-3071
             Project: CXF
          Issue Type: Bug
    Affects Versions: 2.3.0
         Environment: windows / solaris, CXF 2.3.0, 
            Reporter: tom mckiernan




This is an interop issue when working with Java CXF --> .NET service.
The .NET service defines a complex type - SomeCompositeType
Then the service defines a parent complex type that itself contains an array of SomeCompositeType : this parent type is called CompositeTypeParent

The problem is that the SOAP msg produced seems to ignore the field name and instead uses the type name.

The WSDL and XSDs are attached to this ticket.

The Java was produced using CXF 2.3.0.
A rough MVN Java project is also attached that can be used to see the problem.

An example of the SOAP msg produced is seen below. The parent object is defined as having a sub field called "compositeTypes'.
However, the SOAP produced has called this field "ArrayOfSomeCompositeTypes' i.e. is using the field type instead of the field name.
This is not acceptable to .NET - the .NET service ignores this section.


<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
  <soap:Body>
    <ns2:CreateSomeCompositeTypes xmlns="http://schemas.datacontract.org/2004/07/TestService"
    xmlns:ns2="http://tempuri.org/"
    xmlns:ns3="http://schemas.microsoft.com/2003/10/Serialization/">
      <ns2:parent>
        <ArrayOfSomeCompositeType>			<!-- This should be called 'compositeTypes', not 'ArrayOfSomeCompositeType' -->
          <SomeCompositeType>
            <BoolValue>true</BoolValue>
            <StringValue>hello world!</StringValue>
          </SomeCompositeType>
        </ArrayOfSomeCompositeType>
      </ns2:parent>
    </ns2:CreateSomeCompositeTypes>
  </soap:Body>
</soap:Envelope>


At a guess I would imagine that the .NET service's use of ArrayOfXXX is confusing the client. I appreicate that WS-I profile recommends not to use this construct, but unfortunately .NET does.

I also believe this issue exists on previous versions of CXF too.

Many thanks!
Thomas



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


[jira] Updated: (CXF-3071) CXF to .NET ArrayOfXXX interop issue

Posted by "tom mckiernan (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CXF-3071?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

tom mckiernan updated CXF-3071:
-------------------------------

    Attachment:     (was: wsdl_and_xsds.zip)

> CXF to .NET ArrayOfXXX interop issue
> ------------------------------------
>
>                 Key: CXF-3071
>                 URL: https://issues.apache.org/jira/browse/CXF-3071
>             Project: CXF
>          Issue Type: Bug
>    Affects Versions: 2.3.0
>         Environment: windows / solaris, CXF 2.3.0, 
>            Reporter: tom mckiernan
>         Attachments: java_ref_project.zip, wsdl.zip
>
>
> This is an interop issue when working with Java CXF --> .NET service.
> The .NET service defines a complex type - SomeCompositeType
> Then the service defines a parent complex type that itself contains an array of SomeCompositeType : this parent type is called CompositeTypeParent
> The problem is that the SOAP msg produced seems to ignore the field name and instead uses the type name.
> The WSDL and XSDs are attached to this ticket.
> The Java was produced using CXF 2.3.0.
> A rough MVN Java project is also attached that can be used to see the problem.
> An example of the SOAP msg produced is seen below. The parent object is defined as having a sub field called "compositeTypes'.
> However, the SOAP produced has called this field "ArrayOfSomeCompositeTypes' i.e. is using the field type instead of the field name.
> This is not acceptable to .NET - the .NET service ignores this section.
> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
>   <soap:Body>
>     <ns2:CreateSomeCompositeTypes xmlns="http://schemas.datacontract.org/2004/07/TestService"
>     xmlns:ns2="http://tempuri.org/"
>     xmlns:ns3="http://schemas.microsoft.com/2003/10/Serialization/">
>       <ns2:parent>
>         <ArrayOfSomeCompositeType>			<!-- This should be called 'compositeTypes', not 'ArrayOfSomeCompositeType' -->
>           <SomeCompositeType>
>             <BoolValue>true</BoolValue>
>             <StringValue>hello world!</StringValue>
>           </SomeCompositeType>
>         </ArrayOfSomeCompositeType>
>       </ns2:parent>
>     </ns2:CreateSomeCompositeTypes>
>   </soap:Body>
> </soap:Envelope>
> At a guess I would imagine that the .NET service's use of ArrayOfXXX is confusing the client. I appreicate that WS-I profile recommends not to use this construct, but unfortunately .NET does.
> I also believe this issue exists on previous versions of CXF too.
> Many thanks!
> Thomas

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


[jira] Resolved: (CXF-3071) CXF to .NET ArrayOfXXX interop issue

Posted by "Daniel Kulp (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CXF-3071?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Daniel Kulp resolved CXF-3071.
------------------------------

       Resolution: Invalid
    Fix Version/s: Invalid


The problem is in the test code:
        parent.setCompositeTypes(new org.datacontract.schemas._2004._07.testservice.ObjectFactory().createArrayOfSomeCompositeType(array));

should be:
        parent.setCompositeTypes(new org.datacontract.schemas._2004._07.testservice.ObjectFactory().createCompositeTypeParentCompositeTypes(array));

as the element name you need/want is in the createCompositeTypeParentCompositeTypes.   This is purely a JAXB thing, not CXF.


> CXF to .NET ArrayOfXXX interop issue
> ------------------------------------
>
>                 Key: CXF-3071
>                 URL: https://issues.apache.org/jira/browse/CXF-3071
>             Project: CXF
>          Issue Type: Bug
>    Affects Versions: 2.3.0
>         Environment: windows / solaris, CXF 2.3.0, 
>            Reporter: tom mckiernan
>             Fix For: Invalid
>
>         Attachments: java_ref_project.zip, wsdl.zip
>
>
> This is an interop issue when working with Java CXF --> .NET service.
> The .NET service defines a complex type - SomeCompositeType
> Then the service defines a parent complex type that itself contains an array of SomeCompositeType : this parent type is called CompositeTypeParent
> The problem is that the SOAP msg produced seems to ignore the field name and instead uses the type name.
> The WSDL and XSDs are attached to this ticket.
> The Java was produced using CXF 2.3.0.
> A rough MVN Java project is also attached that can be used to see the problem.
> An example of the SOAP msg produced is seen below. The parent object is defined as having a sub field called "compositeTypes'.
> However, the SOAP produced has called this field "ArrayOfSomeCompositeTypes' i.e. is using the field type instead of the field name.
> This is not acceptable to .NET - the .NET service ignores this section.
> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
>   <soap:Body>
>     <ns2:CreateSomeCompositeTypes xmlns="http://schemas.datacontract.org/2004/07/TestService"
>     xmlns:ns2="http://tempuri.org/"
>     xmlns:ns3="http://schemas.microsoft.com/2003/10/Serialization/">
>       <ns2:parent>
>         <ArrayOfSomeCompositeType>			<!-- This should be called 'compositeTypes', not 'ArrayOfSomeCompositeType' -->
>           <SomeCompositeType>
>             <BoolValue>true</BoolValue>
>             <StringValue>hello world!</StringValue>
>           </SomeCompositeType>
>         </ArrayOfSomeCompositeType>
>       </ns2:parent>
>     </ns2:CreateSomeCompositeTypes>
>   </soap:Body>
> </soap:Envelope>
> At a guess I would imagine that the .NET service's use of ArrayOfXXX is confusing the client. I appreicate that WS-I profile recommends not to use this construct, but unfortunately .NET does.
> I also believe this issue exists on previous versions of CXF too.
> Many thanks!
> Thomas

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


[jira] Updated: (CXF-3071) CXF to .NET ArrayOfXXX interop issue

Posted by "tom mckiernan (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CXF-3071?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

tom mckiernan updated CXF-3071:
-------------------------------

    Attachment: wsdl_and_xsds.zip

These files can be used to illustrate and recreate the issue

> CXF to .NET ArrayOfXXX interop issue
> ------------------------------------
>
>                 Key: CXF-3071
>                 URL: https://issues.apache.org/jira/browse/CXF-3071
>             Project: CXF
>          Issue Type: Bug
>    Affects Versions: 2.3.0
>         Environment: windows / solaris, CXF 2.3.0, 
>            Reporter: tom mckiernan
>         Attachments: wsdl_and_xsds.zip
>
>
> This is an interop issue when working with Java CXF --> .NET service.
> The .NET service defines a complex type - SomeCompositeType
> Then the service defines a parent complex type that itself contains an array of SomeCompositeType : this parent type is called CompositeTypeParent
> The problem is that the SOAP msg produced seems to ignore the field name and instead uses the type name.
> The WSDL and XSDs are attached to this ticket.
> The Java was produced using CXF 2.3.0.
> A rough MVN Java project is also attached that can be used to see the problem.
> An example of the SOAP msg produced is seen below. The parent object is defined as having a sub field called "compositeTypes'.
> However, the SOAP produced has called this field "ArrayOfSomeCompositeTypes' i.e. is using the field type instead of the field name.
> This is not acceptable to .NET - the .NET service ignores this section.
> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
>   <soap:Body>
>     <ns2:CreateSomeCompositeTypes xmlns="http://schemas.datacontract.org/2004/07/TestService"
>     xmlns:ns2="http://tempuri.org/"
>     xmlns:ns3="http://schemas.microsoft.com/2003/10/Serialization/">
>       <ns2:parent>
>         <ArrayOfSomeCompositeType>			<!-- This should be called 'compositeTypes', not 'ArrayOfSomeCompositeType' -->
>           <SomeCompositeType>
>             <BoolValue>true</BoolValue>
>             <StringValue>hello world!</StringValue>
>           </SomeCompositeType>
>         </ArrayOfSomeCompositeType>
>       </ns2:parent>
>     </ns2:CreateSomeCompositeTypes>
>   </soap:Body>
> </soap:Envelope>
> At a guess I would imagine that the .NET service's use of ArrayOfXXX is confusing the client. I appreicate that WS-I profile recommends not to use this construct, but unfortunately .NET does.
> I also believe this issue exists on previous versions of CXF too.
> Many thanks!
> Thomas

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


[jira] Updated: (CXF-3071) CXF to .NET ArrayOfXXX interop issue

Posted by "tom mckiernan (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CXF-3071?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

tom mckiernan updated CXF-3071:
-------------------------------

    Attachment: java_ref_project.zip

> CXF to .NET ArrayOfXXX interop issue
> ------------------------------------
>
>                 Key: CXF-3071
>                 URL: https://issues.apache.org/jira/browse/CXF-3071
>             Project: CXF
>          Issue Type: Bug
>    Affects Versions: 2.3.0
>         Environment: windows / solaris, CXF 2.3.0, 
>            Reporter: tom mckiernan
>         Attachments: java_ref_project.zip, wsdl_and_xsds.zip
>
>
> This is an interop issue when working with Java CXF --> .NET service.
> The .NET service defines a complex type - SomeCompositeType
> Then the service defines a parent complex type that itself contains an array of SomeCompositeType : this parent type is called CompositeTypeParent
> The problem is that the SOAP msg produced seems to ignore the field name and instead uses the type name.
> The WSDL and XSDs are attached to this ticket.
> The Java was produced using CXF 2.3.0.
> A rough MVN Java project is also attached that can be used to see the problem.
> An example of the SOAP msg produced is seen below. The parent object is defined as having a sub field called "compositeTypes'.
> However, the SOAP produced has called this field "ArrayOfSomeCompositeTypes' i.e. is using the field type instead of the field name.
> This is not acceptable to .NET - the .NET service ignores this section.
> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
>   <soap:Body>
>     <ns2:CreateSomeCompositeTypes xmlns="http://schemas.datacontract.org/2004/07/TestService"
>     xmlns:ns2="http://tempuri.org/"
>     xmlns:ns3="http://schemas.microsoft.com/2003/10/Serialization/">
>       <ns2:parent>
>         <ArrayOfSomeCompositeType>			<!-- This should be called 'compositeTypes', not 'ArrayOfSomeCompositeType' -->
>           <SomeCompositeType>
>             <BoolValue>true</BoolValue>
>             <StringValue>hello world!</StringValue>
>           </SomeCompositeType>
>         </ArrayOfSomeCompositeType>
>       </ns2:parent>
>     </ns2:CreateSomeCompositeTypes>
>   </soap:Body>
> </soap:Envelope>
> At a guess I would imagine that the .NET service's use of ArrayOfXXX is confusing the client. I appreicate that WS-I profile recommends not to use this construct, but unfortunately .NET does.
> I also believe this issue exists on previous versions of CXF too.
> Many thanks!
> Thomas

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


[jira] Updated: (CXF-3071) CXF to .NET ArrayOfXXX interop issue

Posted by "tom mckiernan (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CXF-3071?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

tom mckiernan updated CXF-3071:
-------------------------------

    Attachment: wsdl.zip

> CXF to .NET ArrayOfXXX interop issue
> ------------------------------------
>
>                 Key: CXF-3071
>                 URL: https://issues.apache.org/jira/browse/CXF-3071
>             Project: CXF
>          Issue Type: Bug
>    Affects Versions: 2.3.0
>         Environment: windows / solaris, CXF 2.3.0, 
>            Reporter: tom mckiernan
>         Attachments: java_ref_project.zip, wsdl.zip
>
>
> This is an interop issue when working with Java CXF --> .NET service.
> The .NET service defines a complex type - SomeCompositeType
> Then the service defines a parent complex type that itself contains an array of SomeCompositeType : this parent type is called CompositeTypeParent
> The problem is that the SOAP msg produced seems to ignore the field name and instead uses the type name.
> The WSDL and XSDs are attached to this ticket.
> The Java was produced using CXF 2.3.0.
> A rough MVN Java project is also attached that can be used to see the problem.
> An example of the SOAP msg produced is seen below. The parent object is defined as having a sub field called "compositeTypes'.
> However, the SOAP produced has called this field "ArrayOfSomeCompositeTypes' i.e. is using the field type instead of the field name.
> This is not acceptable to .NET - the .NET service ignores this section.
> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
>   <soap:Body>
>     <ns2:CreateSomeCompositeTypes xmlns="http://schemas.datacontract.org/2004/07/TestService"
>     xmlns:ns2="http://tempuri.org/"
>     xmlns:ns3="http://schemas.microsoft.com/2003/10/Serialization/">
>       <ns2:parent>
>         <ArrayOfSomeCompositeType>			<!-- This should be called 'compositeTypes', not 'ArrayOfSomeCompositeType' -->
>           <SomeCompositeType>
>             <BoolValue>true</BoolValue>
>             <StringValue>hello world!</StringValue>
>           </SomeCompositeType>
>         </ArrayOfSomeCompositeType>
>       </ns2:parent>
>     </ns2:CreateSomeCompositeTypes>
>   </soap:Body>
> </soap:Envelope>
> At a guess I would imagine that the .NET service's use of ArrayOfXXX is confusing the client. I appreicate that WS-I profile recommends not to use this construct, but unfortunately .NET does.
> I also believe this issue exists on previous versions of CXF too.
> Many thanks!
> Thomas

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