我正在使用AXIS2 Framework来创建和访问Web服务。使用Axis2一切都很好。但我有一个要求,当我通过soapui访问thsi webserivce来测试web服务;在requesrt.xml中,它必须显示可选参数和强制参数。
但是在演示时它显示如下:
<soapenv:Body>
<xsd:insertsStudent>
<!--Optional:-->
<xsd:studentId>?</xsd:employeeId>
<!--Optional:-->
<xsd:emailAddress>?</xsd:emailAddress>
</xsd:insertsStudent>
</soapenv:Body>
在上面的示例肥皂请求中,我希望studentId为强制值,那么如何在肥皂请求中将其显示为强制性。(如下所示)
<soapenv:Body>
<xsd:insertsStudent>
<!--compulsory:-->
<xsd:studentId>?</xsd:employeeId>
<!--Optional:-->
<xsd:emailAddress>?</xsd:emailAddress>
</xsd:insertsStudent>
</soapenv:Body>
答案 0 :(得分:1)
在soapUI创建的请求/响应示例中,您会在每个字段上方获得<!--Optional:-->
注释,该注释在WSDL文件的相应XSD类型定义中声明为可选。如果元素是必需的,soapUI不会在其上方显示任何内容。
你的要求很奇怪。您必须在WSDL中使元素成为必需元素,而不是让soapUI在元素上方显示<!--compulsory:-->
注释,这显然是可选的。
上述意味着您在WSDL中有类似的内容:
<xsd:element name="insertsStudent">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="studentId" type="xsd:string" minOccurs="0" maxOccurs="1" />
<xsd:element name="emailAddress" type="xsd:string" minOccurs="0" maxOccurs="1" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
minOccurs="0" maxOccurs="1"
表示可选;
minOccurs="1" maxOccurs="1"
表示强制性(强制性)。
如果您为minOccurs
将studentId
更改为1,您将获得必填字段,soapUI将显示以下内容:
<soapenv:Body>
<xsd:insertsStudent>
<xsd:studentId>?</xsd:employeeId>
<!--Optional:-->
<xsd:emailAddress>?</xsd:emailAddress>
</xsd:insertsStudent>
</soapenv:Body>
答案 1 :(得分:1)
实际上我只是在做编码部分。我没有生成任何wsdl文件(当你请求像http://localhost:8080/services/testwebservice?wsdl这样的web服务时,Axis2会自动在浏览器中显示wsdl文件。)
那么你能告诉我怎样才能改变使用axis2生成wsdl文件的行为。