1
我們對java服務器和.NET客戶端使用帶有aegis映射器的CXF框架。 默認情況下,對於WSDL中的類中的所有變量,我們都有minOccurs = 0。 我們用這樣的設置在CXF配置,以防止它:CXF:爲數組元素設置minOccurs = 0
<bean id="aegisBean" class="org.apache.cxf.aegis.databinding.AegisDatabinding" scope="prototype">
<property name="configuration">
<bean class="org.apache.cxf.aegis.type.TypeCreationOptions">
<property name="defaultNillable" value="false"/>
<property name="defaultMinOccurs" value="1"/>
</bean>
</property>
</bean>
但我們有陣列的另一個問題。對於數組我們在WSDL有這樣的代碼:
<xsd:complexType name="ArrayOfDetails">
<xsd:sequence>
<xsd:element maxOccurs="unbounded" name="Details" type="tns:Details"/>
</xsd:sequence>
</xsd:complexType>
所以空數組是不能接受的:
org.apache.cxf.interceptor.Fault: The number of elements in {http://dto.WebServices.com}ArrayOfDetails does not meet the mini mum of 1
是否有可能,要註釋添加到陣列中,其中設置的minOccurs =「0」到的元素數組(而不是整個數組)?或者有可能將它設置爲所有陣列的aegis配置?
<xsd:element minOccurs="0" maxOccurs="unbounded" name="Details" type="tns:Details"/>