[
https://issues.apache.org/jira/browse/CXF-3541?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Daniel Kulp resolved CXF-3541.
------------------------------
Resolution: Fixed
Fix Version/s: 2.3.5
2.4.1
Assignee: Daniel Kulp
> wsdl2java - XmlBeans Binding does not handle collections/array properly
> -----------------------------------------------------------------------
>
> Key: CXF-3541
> URL: https://issues.apache.org/jira/browse/CXF-3541
> Project: CXF
> Issue Type: Bug
> Components: Tooling
> Affects Versions: 2.4, 2.3.4
> Reporter: Chun Zhang
> Assignee: Daniel Kulp
> Fix For: 2.4.1, 2.3.5
>
>
> Generated Java code using CXF wsdl2java with xmlbeans databinding contains
> wrong return type for collections/arrays.
> To reproduce the problem.
> 1. Use CustomerService.wsdl file from the wsdl_first sample.
> 2. Run wsdl2java without a binding file.
> 3. Look at the generated interface CustomerService.java
> The generated code for getCustomersByName operation on CustomerService
> service is shown below
>
> @WebService(targetNamespace = "http://customerservice.example.com/", name =
> "CustomerService")
> @DataBinding(org.apache.cxf.xmlbeans.XmlBeansDataBinding.class)
> public interface CustomerService {
> @WebResult(name = "return", targetNamespace = "")
> @RequestWrapper(localName = "getCustomersByName", targetNamespace =
> "http://customerservice.example.com/",
> className =
> "com.example.customerservice.GetCustomersByNameDocument")
> @WebMethod
> @ResponseWrapper(localName = "getCustomersByNameResponse",
> targetNamespace = "http://customerservice.example.com/",
> className =
> "com.example.customerservice.GetCustomersByNameResponseDocument")
> public com.example.customerservice.Customer getCustomersByName(
> @WebParam(name = "name", targetNamespace = "")
> String name
> ) throws NoSuchCustomerException;
> }
>
> Note that the getCustomersByName () method returns Customer object.
> Based on the CusotmerService.wsdl, it should return a list of Customers or
> the wrapper GetCustomersByNameResponse object.
> Workaround (Credit Daniel Kulp):
> You can flip it to BARE mode by creating a small binding file containing:
> <jaxws:bindings
> wsdlLocation="CustomerService.wsdl"
> xmlns:jaxws="http://java.sun.com/xml/ns/jaxws">
> <jaxws:enableWrapperStyle>false</jaxws:enableWrapperStyle>
> </jaxws:bindings>
> and passing that to wsdl2java via the -b flag. That would force the BARE
> mode and wouldn't attempt the unwrapping.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira