2014-02-14 1 views
0

Apache Axis 1.2.1을 사용하여 생성 된 WSDL이 있습니다. 이제 JAX-WS 2.1 웹 서비스 프레임 워크를 사용하여 스텁을 만들려고합니다.JAX-WS에서 WSDL 구문 분석 오류가 발생했습니다.

스텁을 생성하는 동안 유효성 검사 오류가 발생합니다. 이 문제로 인해 스텁을 만들 수 없습니다. enter image description here

! WSDL 유효성 검증 오류 이미지 난은 MyEclipse IDE, SOAP UI 도구 & 자바의 기본 wsimport.bat 파일과 같은 다양한 도구를 통해 스텁을 만들려고. 위의 세 가지 시나리오 중에서 지원되지 않는 형식으로 인해 스텁을 만들지 못했습니다.

하지만 Apache Axis 1.2.1 라이브러리가있는 SOAP UI 도구를 사용하여 스텁을 만들 때 tryed를 사용하면 스텁이 만들어집니다. 그러나 그것들은 다릅니다.

내 쿼리는 WSDL이 W3C 표준 형식입니다. 그래서 모든 자바 API는이 표준을 존중해야한다. 그렇다면이 WSDL이 스텁을 만들 수없는 이유는 무엇인가 ?? 및 그래서 Apache Axis 1.2.1 대신 JAX-WS 2.1을 사용하여 스텁을 만들어야합니다.

나에게 가능한 답을 제시주십시오 ... Click here for WSDL

답변

0

당신이보고있는 오류가

는 웹 서비스 상호 운용성 (WS-I) 준수 오류입니다. WSDL 문서가 유효합니다. Window-> Preferences-> Web Services-> Profile Compliance 및 유효성 검사에서 WS-I 유효성 검사를 비활성화 할 수 있습니다. WS-I AP와 WS-I SSBP를 준수 무시로 설정하십시오.

오류를 제거하려면 스키마의 가져 오기를 제거하십시오. 스키마 유형이 암시 적으로 수입하고 은 내가 전에 도구를 사용하여이 문제를 일으킬 보았 듯이

<xsd:import namespace="http://www.w3.org/2001/XMLSchema"/> 

이 줄은 unncessary입니다.

0
<import namespace="http://holder.webservices.external"/> 

이것은 스키마가 정의 된 네임 스페이스 위치이며 스텁을 만들 때 도구를 통해 액세스 할 수 없습니다. 인터넷 브라우저에이 파일을 넣으면 페이지 오류를 찾을 수 없습니다.

스키마를 컴퓨터에 로컬로 저장하고 그에 따라 wsdl 내에서 가져 오기 위치를 변경하거나 wsdl 자체에서 스키마 내의 요소를 정의하십시오.