서비스 스텁을 생성하기 위해 Axis2를 사용하는 .NET WCF 서비스 및 Java 응용 프로그램이 있습니다. (선택 사항) 속성을 WCF의 데이터 계약에 추가하고 을 속성 목록 (역 호환 호환이어야 함) 끝에 정렬하면 Java 응용 프로그램에서 예상하지 못한 하위 요소이 발생합니다. 이 문제를 해결할 수있는 유일한 방법은 Axis2의 스텁을 다시 생성하고 Java 응용 프로그램을 재배포하는 것입니다. 필자의 경우에는 받아 들일 수있는 방법이 아닙니다.Axis2 : WSDL에 불필요한 속성을 추가 할 때 "예기치 않은 하위 요소"오류가 발생하지 않도록하십시오.
분명히하기 위해 속성 순서가 변경되지 않았으므로 WSDL이 유효합니다. org.apache : 버전이 오류가 발생 후에
<!-- BEFORE -->
<xs:complexType name="MyObject">
<xs:sequence>
<xs:element minOccurs="0" name="Name" nillable="true" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<!-- AFTER -->
<xs:complexType name="MyObject">
<xs:sequence>
<xs:element minOccurs="0" name="Name" nillable="true" type="xs:string"/>
<xs:element minOccurs="0" name="MyNewProperty" nillable="true" type="xs:string"/>
</xs:sequence>
</xs:complexType>
: 여기 (이하 "예기치 않은 하위 요소"오류가 발생합니다)을 (자바 응용 프로그램이 작동) 전에서 WSDL에서 유형의 예 후에입니다. axis2.AxisFault : org.apache.axis2.databinding.ADBException : 예기치 않은 하위 요소 {HTTP : //mycompany.com/services/}MyNewProperty
는 이런 일이 발생을 방지하기 위해 우리가 Axis2와 함께 할 수있는 뭔가가 있나요? 그렇지 않다면, WSDL이나 WCF 측면에서 우리가해야 할 다른 것이 있습니까?
축에서 데이터 바인딩을위한 JAXB를 사용하여, 유사한 WCF 클라이언트가 이러한 변경 사항을 비 중단으로 간주하는 방법 – Cirdec
감사합니다. 이것은 필자의 변경 사항이 이전 버전과 호환되었다는 내 생각을 밝혀줍니다. 그러나 나는 여전히 해결책이 필요하다. – Keith
나는 여전히 하나를 찾고있다. 우리는 수년간 이런 식으로 WCF를 사용 해왔지만 지금은 Axis를 사용하는 고객이 하나 있습니다. 따라서 반환 유형에 속성을 추가 할 때는 큰 변화입니다. , 아마도"lax "또는"skip "la 일 수 있습니다. http://msdn.microsoft.com/en/ -us/library/aa468563.aspx 또는 : 모든 변경 사항에 대한 끝점을 추가하십시오. –
Cirdec