Missing element in wsdl

Viewed 109

i am currently migrating one of our applications from Java 8/TomCat 8 to Java 11 and TomCat 9.

It took me already quite some time but there is one strange problem where i need some help. I am using JAXWS-RT version 2.3.3

We are exposing some webservices with JAXWS where we return a simple Java Object annotated with some XML Annotation.

In general the webservice is also accessible and also works.

But the request parameter is not exposed over the xsd.

This is the service:

@WebMethod(operationName = "ValuesRequestDataLabel", action = "tns:valuesMessage")
@WebResult(name = "VDataServiceResponse", partName = "VDataServiceResponse", targetNamespace = "http://www.test.com/services/DataService/")
public DataServiceResponse valuesRequestDataLabel(
        @WebParam(name = "VDataServiceRequestLabel", partName = "VDataServiceRequestLabel", targetNamespace = "http://www.test.com/services/DataService/") DataServiceRequestLabel vDataServiceRequestLabel) {
    DataServiceResponse result = getDataServiceBase().performValuesRequestDataLabel(vDataServiceRequestLabel);
    return result;
}

And this is a part of the request class (i left out the getters and setters):

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
  "startTime",
  "endTime",
  "compression",
  "user",
  "label"
})
@XmlRootElement(name = "valuesRequestLabel")
public class DataServiceRequestLabel {

@XmlElement(name = "StartTime", required = true)
@XmlSchemaType(name = "dateTime")
protected XMLGregorianCalendar startTime;
@XmlElement(name = "EndTime", required = true)
@XmlSchemaType(name = "dateTime")
protected XMLGregorianCalendar endTime;    
@XmlElement(name = "Label", required = true)
protected List<String> label;
@XmlElement(name = "Compression", required = false)
protected Boolean compression;
@XmlElement(name = "User", required = false)
protected String user;
....

And this is the xsd result generated during runtime (where i miss the request data):

....
<xs:complexType name="ValuesRequestDataLabel">
  <xs:sequence>
    <xs:element name="VDataServiceRequestLabel" form="qualified" minOccurs="0"/>
  </xs:sequence>
</xs:complexType>
....

But i would expect (and this is how it was in the old environment):

....
<xs:complexType name="ValuesRequestDataLabel">
  <xs:sequence>
    <xs:element name="VDataServiceRequestLabel" form="qualified" minOccurs="0">
      <xs:complexType>
        <xs:sequence>
          <xs:element name="StartTime" type="xs:dateTime"/>
          <xs:element name="EndTime" type="xs:dateTime"/>
          <xs:element name="Compression" type="xs:boolean" minOccurs="0"/>
          <xs:element name="User" type="xs:string" minOccurs="0"/>
          <xs:element name="Label" type="xs:string" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
    </xs:element>
  </xs:sequence>
</xs:complexType>
....

Has anyone an idea whats wrong?

0 Answers
Related