비누 웹 서비스의 문제점을 해결하는 가장 좋은 방법을 찾고 있습니다. 해결해야 할 문제는 Apache Axis가 주어진 WSDL 파일을 사용하여 생성 한 프록시를 wsdl2java
명령을 사용하는 Apache CXF genereta의 프록시로 대체하는 것입니다. 클래스 필드로Apache CXF WSDL 스키마 구문 분석 xsd : 모든 유형
@XmlAnyElement(lax = true)
protected List<Object> any;
요소 : 나는 CXF와 프록시를 생성 IDE의 클래스를 열 때 는 그러나, 나는 내가 가지고있는 것을 깨달았다. 이것은 이상했다. 순수한 wsdl을보고 complextype
속성 중 하나에 xsd:any
요소가 있습니다. 나는 오랜 시간 동안 무엇이 문제인지 그리고 그것을 해결하기위한 최선의 해결책을 찾고 있었다. 나는 this을 발견했다. 그것은 아파치 CXF 런타임 요소의 실제 데이터 형식을 확인할 수없는 것 같습니다. 따라서 DOM 파서를 사용하여 수동으로 구문 분석해야합니다.
private org.apache.axis.message.MessageElement[] _any;
태그 :
<any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
내 질문은 :이 문제를 해결하는 가장 좋은 방법은 무엇입니까
아파치 축은 다음을 생성? DOM 파서가 정말로 필요합니까? 내가 그리워하는 게 있니? 감사합니다.
하지만를 참조하십시오, 내가 서버에 요청을 보내고, 그것은 나를 응답합니다. 그런 다음 데이터를 가져 와서 호출해야합니다. result.getAny(). 그것은 나에게 물건을 줄 것이다. 그리고 메소드를 호출하고 싶습니다만, 그것은 객체입니다. Axis를 MessageElement로 캐스트합니다. 그리고 나는 그것에 특정한 방법을 부를 수 있습니다. 내 연습에서는이 클래스의 기능 중 하나를 재현해야하므로 데이터가 필요합니다. 요소를 Document 유형으로 변환하려고합니다. –
문서에 따르면 DOM 구조에 액세스 할 수있게 해주는 org.w3c.dom.Element'로 객체를 캐스팅 할 수 있습니다. – pedrofb
예, 제 질문에서 언급했습니다. 나는 다른 선택의 여지가없는 것처럼 보인다. 도와 주셔서 감사합니다. 감사합니다. –