우리는로 정의 된 복합 유형 JAX-RPC 스타일의 웹 서비스는 다음 한 던졌습니다 :복합 유형의 마샬링 예외
<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 : // 네임/SOME/V1 자바 유형 : 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에 게시됩니다 만 응답하지 않고, 어떤 포인터가 좋은 것입니다.
감사합니다. 두 번째 경우의 작업을 할 수있는 장치가 무엇인지,
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element name="errorMessages" type="some:ErrorMessageWSType"/>
</xs:sequence>
OTOH :이 질문의 "왜"부분을 해결되는지
두 가지 방법 모두 시도했지만 동일한 예외가 있습니다. 어쨌든, 고마워! –
다른 제한 기반을 사용해 보셨습니까? XML 스키마 정의 (http://www.w3.org/TR/xmlschema-2/#NMTOKEN)에서 : "호환성을 위해 (용어 (§1.4) 참조) NMTOKEN은 속성에서만 사용되어야합니다." 대신 문자열을 사용해보십시오. 어떻게되는지보십시오. – uvesten
도 그 옵션을 시험해 보았다. .. 행운이 없다. .. 같은 예외를 얻었다! –