微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

wsdl 中缺少元素

如何解决wsdl 中缺少元素

我目前正在将我们的一个应用程序从 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 result;
}

这是请求类的一部分(我省略了 getter 和 setter):

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

有人知道出了什么问题吗?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。