You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cxf.apache.org by "Daniel Kulp (JIRA)" <ji...@apache.org> on 2009/10/15 22:23:31 UTC
[jira] Resolved: (CXF-1104) WSDLToJava Error -- two elements with
the same name defined
[ https://issues.apache.org/jira/browse/CXF-1104?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Daniel Kulp resolved CXF-1104.
------------------------------
Resolution: Fixed
Fix Version/s: 2.2
Resolving this a "fixed" more or less.
With JAX-WS 2.2/JAXB 2.2, you can write XmlTypeAdapter things to handle interfaces. We added an example (java_first_jaxws) that shows how that is done.
> WSDLToJava Error -- two elements with the same name defined
> -----------------------------------------------------------
>
> Key: CXF-1104
> URL: https://issues.apache.org/jira/browse/CXF-1104
> Project: CXF
> Issue Type: Bug
> Components: JAXB Databinding
> Affects Versions: 2.0.2
> Environment: Java 5.
> Reporter: Tom Schroedl
> Fix For: 2.2
>
>
> The WSDL generated by my JAX-WS service cannot be used to create the client. I get the following error:
> org.apache.cxf.tools.common.ToolException: WSDLToJava Error : Thrown by JAXB : 'findSystemInfoResponse' is already defined
> I am trying to return a DTO from a service. The service method's return type is an interface that the DTO implements. However, while the generated client did create my exception classes, it didn't create any response classes that I was expecting. In looking at the WSDL, I noticed the response type wasn't showing up anywhere as a <xs:complexType> under <wsdl:definitions>. So, I added @WebMethod and @ResponseWrapper(className="my.package.SysInfoDTO") to the SEI. Where SysInfoDTO is the concrete class for the return type.
> Doing this did get the concrete class to show up as a complexType. However, now, when I attempt to generate the client, it fails because there are actually two elements with the same name:
> <xs:complexType name="sysInfoDTO">
> <xs:sequence>
> <xs:element minOccurs="0" name="applicationVersion" type="xs:string"/>
> <xs:element minOccurs="0" name="currentDatabase" type="xs:string"/>
> <xs:element minOccurs="0" name="currentSchema" type="xs:string"/>
> </xs:sequence>
> </xs:complexType>
> <xs:element name="findSystemInfoResponse" nillable="true" type="sysInfoDTO"/>
> ...
> <xs:element name="findSystemInfoResponse" type="findSystemInfoResponse"/>
> <xs:complexType name="findSystemInfoResponse">
> <xs:sequence>
> <xs:element minOccurs="0" name="result"/>
> </xs:sequence>
> </xs:complexType>
> I can see why this would fail as it can't figure out which findSystemInfoResponse element to use. Is there something I've missed, should this happen?
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.