Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
指示属性需求级别的Java Web服务_Java_Xml_Web Services - Fatal编程技术网

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

指示属性需求级别的Java Web服务,java,xml,web-services,Java,Xml,Web Services,我已经在我的应用程序中实现了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> <im

我已经在我的应用程序中实现了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>
<jaxws:endpoint id="myService" ...>
  <jaxws:properties>
    <entry key="schema-validation-enabled" value="true" />
    ...
  </jaxws:properties>
  ...
</jaxws:endpoint>

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

我使用apachecxf


需求级别链接:

在web服务定义中,您有一个类型部分,用于定义消息的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配置中激活模式验证,则不会在服务器端对此进行验证,如下所示:

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

...
...

PS:soapui使用目标web服务的XML模式生成默认请求。如果XML架构没有
use=“required”
nillable=“false”
它将在元素上添加一条
注释

您应该更改问题的标题:您要求对web服务消息添加限制,对吗?我可以在Java类定义变量之前使用注释吗?如果您使用JAXWS和JAXB的“第一个代码”方法,您可以使用JAXB注释,如
@xmlement(nillable=false)
@xmltattribute(required=false)