JAX-RPCスタイルのWebサービスがあり、複合型は次のように定義されています。
<xs:complexType name = "SomeFault">
<xs:sequence>
<xs:element name = "errorMessages" type="some:ErrorMessageWSType" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
<xs:simpleType name = "ErrorMessageWSType">
<xs:restriction base = "xs:NMTOKEN">
<xs:enumeration value = "INVALID_1"/>
<xs:enumeration value = "INVALID_2"/>
<xs:enumeration value = "INVALID_3"/>
</xs:restriction>
</xs:simpleType>
応答/障害の複合型に単一の配列型フィールドがある場合、サーバー側でマーシャリング例外が発生します。
weblogic.wsee.codec.CodecException:com.bea.xml.XmlExceptionのエンコードに失敗しました:オブジェクト「[Lnamespace.type.ErrorMessageWSType;@693767e9」のマーシャリングで使用するのに適したバインディングタイプを見つけることができませんでした。スキーマタイプの使用:t = SomeFault @ http:// namespace / SOME / v1 java type:namespace.type.ErrorMessageWSType []
SomeFaultを変更すると、複合型に別の要素を追加することでエラーがなくなります。
<xs:complexType name = "SomeFault">
<xs:sequence>
<xs:element name = "errorMessages" type="some:ErrorMessageWSType" maxOccurs="unbounded" />
<xs:element name = "dummyString" type="xsd:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
wsdlcコード生成中に何か問題が発生していますか、それとも既知の問題ですか?
同様の質問はすでにhttps://forums.oracle.com/forums/thread.jspa?messageID=4462906に投稿されていますが、応答がなければ、ポインタは素晴らしいでしょう。
ありがとう。