Uploaded image for project: 'CXF'
  1. CXF
  2. CXF-1104

WSDLToJava Error -- two elements with the same name defined

Attach filesAttach ScreenshotVotersWatch issueWatchersCreate sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 2.0.2
    • 2.2
    • JAXB Databinding
    • None
    • Java 5.

    Description

      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?

      Attachments

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            Unassigned Unassigned
            tschroedl Tom Schroedl
            Votes:
            1 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment