如何解决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 举报,一经查实,本站将立刻删除。