Недостающий элемент в wsdl

#java #xml #xsd #jax-ws

#java #xml #xsd #jax-ws

Вопрос:

в настоящее время я переношу одно из наших приложений с Java 8 / TomCat 8 на Java 11 и TomCat 9.

Мне потребовалось уже довольно много времени, но есть одна странная проблема, в которой мне нужна помощь. Я использую JAXWS-RT версии 2.3.3

Мы предоставляем некоторые веб-сервисы с помощью JAXWS, где мы возвращаем простой объект Java, аннотированный некоторой аннотацией XML.

В целом веб-сервис также доступен и также работает.

Но параметр запроса не отображается через xsd.

Это сервис:

 @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 resu<
}
 

И это часть класса request (я не включил геттеры и сеттеры):

 @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;
....
 

И это результат xsd, сгенерированный во время выполнения (где я пропускаю данные запроса):

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

Но я бы ожидал (и так было в старой среде):

 ....
<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>
....
 

Кто-нибудь знает, что не так?