Java サーバーと .NET クライアント用の aegis マッパーを備えた CXF フレームワークを使用します。デフォルトでは、WSDL のクラスのすべての変数に対して minOccurs=0 があります。それを防ぐために、CXF 構成でそのような設定を使用します。
<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"/>