gpt4 book ai didi

Java Web 服务指示属性的需求级别

转载 作者:行者123 更新时间:2023-11-30 04:46:26 24 4
gpt4 key购买 nike

我已经在我的应用程序中实现了 Web 服务。当我想使用 Soap UI 通过 SOA 上的 Web 服务将对象发送到我的服务器时,我得到如下内容:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:impl="http://impl.arg.lou.com/">
<soapenv:Header/>
<soapenv:Body>
<impl:addStudent>
<!--Optional:-->
<student>
<!--Optional:-->
<name>?</name>
</student>
</impl:addStudent>
</soapenv:Body>
</soapenv:Envelope>

我不希望名称字段是可选的,它应该是必填字段。我该怎么做?

我使用 Apache cxf。

要求级别链接:http://www.ietf.org/rfc/rfc2119.txt

最佳答案

在您的 Web 服务定义中,您有一个 type 部分,用于定义消息的 XML 架构。在该定义中,您可以设置多个约束,例如“必填字段”。

示例:

<wsdl:definitions name="myService" ...>
<wsdl:types>
<xs:schema version="1.0" targetNamespace="myNameSpace" xmlns:tns="myNameSpace">
<xs:complexType name="studentType">
<xs:attribute name="name" type="xs:string" use="required" />
</xs:complexType>
<xs:element name="student" nillable="false" type="tns:studentType"/>
</xs:schema>
</wsdl:types>
...
</wsdl:definitions>

现在,如果您不在 apache CXF 配置中激活架构验证,则不会在服务器端进行验证,如下所示:

<jaxws:endpoint id="myService" ...>
<jaxws:properties>
<entry key="schema-validation-enabled" value="true" />
...
</jaxws:properties>
...
</jaxws:endpoint>

PS:SOAP UI 使用目标 Web 服务的 XML 架构来生成默认请求。如果 XML 架构没有 use="required"nillable="false"它将添加 <!-- optional -->对元素发表评论

关于Java Web 服务指示属性的需求级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10846722/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com