2012-10-22 4 views
1

작업중인 wsdl의 xsd가 '점 슬래시'(./)로 시작하는 경로로 참조됩니다.WSDL에서 현재 점 'dot slash'(./) (XSD 경로)

<xsd:schema> 
    <xsd:import namespace="urn:my.name.space.be" schemaLocation="http://fictive.url.be:11001/path/to/wsdl/my-service?XSD=./xsd/my-service.xsd"/> 
</xsd:schema> 

경로가 유효하며 브라우저에서 xsd에 액세스 할 수 있습니다. 예를 들어 비누 UI에서도 잘 작동합니다. 하지만 Jdeveloper로 프록시를 생성하려고하면 'WebServiceException : : wsdl에서 모델 생성 중 오류 발생 :'ExampleType '이 이미 정의되었습니다.'

'점 슬래시'(XSD=xsd/my-service.xsd)를 제거하면 더 이상 예외가 발생하지 않으며 모든 사항이 정상입니다.

이것은 버그입니까? 왜 이런 일이 생길까요? 반드시 wsdl을 수정하지 않고 이것을 피할 수있는 방법이 있습니까?

감사합니다.

답변

1

JDeveloper 도구가 XML 스키마 세트를 함께 구성하는 방법과 관련이 있습니다. 'ExampleType' is already defined'.는 두 가지 중 하나를 의미한다 :

  • ExampleType을 정의 XSD 두번 다른 기본 URI의 사용 이상의 을로드 동일한 : 다른 "문자열"표현을 아직 서버에 역 참조하면 동일한 리소스를 가리 킵니다. WSDL에 유형/스키마 섹션 내부에있을 수 및/또는 외부 XSD 파일 :

  • ExampleType 이상 (서로 다른) XSD "장소"에 정의되어있다.

URL을 변경하면 해당 URL이 유효하지 않게되고 (추가 참조는 더 이상 필요하지 않습니다) 또는 JDeveloper URI 비교가 올바르게 수행 될 수 있습니다.

진단하려면 먼저 어떤 리소스를 어디에서 다운로드해야하는지 파악해야합니다.

JDeveloper와 다른 툴을 실행하는 동안 HTTP 디버거 (예 : 프록시로 tcpmon을 사용하고 트래픽을 모니터링)를 사용하십시오. 추적을 비교하고 각 도구가 해결하려고하는 URL을 찾습니다.

GET 헤더 값을 비교하여 도구 간의 차이점을 확인하십시오. 그런 다음 다운로드 한 콘텐츠를 살펴보십시오. 다음에해야 할 일에 대한 좋은 아이디어를 줄 것입니다. 여전히 문제가 해결되지 않으면 추가 정보로 질문을 업데이트하십시오.