0
我正在爲SOAP Webservices使用CXF。是否有任何情況下產生的SOAP響應不符合WSDL?我讓CXF通過wsdl2java從WSDL生成代碼。CXF可以生成不符合WSDL的SOAP響應嗎?
例如我有一些實體minOccurs=1
。 CXF會強制相應的Java元素不會爲空嗎?
其他差異可能嗎?
舉個例子:我有以下WSDL類型:
<xsd:complexType name="PropertyList">
<xsd:sequence>
<xsd:element maxOccurs="unbounded" minOccurs="1" name="property"
type="pms-xsd:Property" />
</xsd:sequence>
</xsd:complexType>
它被翻譯成:
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "PropertyList", propOrder = {
"property"
})
public class PropertyList {
@XmlElement(required = true)
protected List<Property> property;
...
這,我的理解,要求對清單property
存在(形式的XmlElement),但不是至少存在一個屬性,WSDL需要該屬性。這是一個可能的問題,還是我理解錯誤?
這隻涉及模式驗證,它會根據提供的wsdl測試響應。我更多地討論生成的SOAP響應甚至可能無法驗證的問題,並且如果編程過程已經通過例如minOccurs屬性來確保該響應。 – Arne
即使在JAXB中編組/解組時,我們也提供了將應用模式驗證的xsd文件,但沒有JAXB特定的驗證批註。在編組架構驗證之前的CXF中將在其中一個階段中應用。並且在解組階段之後的一個階段中應用消息模式驗證。在模式驗證過程中,如果失敗,它會拋出錯誤。 –