1

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"/>
4

1 に答える 1

0

マッピング ファイルを使用する必要があります。

 <mappings>
  <mapping name="ArrayOfDetails">
    <property name="Details" minOccurs='0'/>
  </mapping>
</mappings>
于 2010-06-10T09:46:03.967 に答える