2009-09-24 4 views
2

자동화 된 툴링이 작동하는 클라이언트를 빌드하지 못하는 SOAP 기반 웹 서비스의 여러 예제를 접했습니다.나쁜 WSDL을 어떻게 보완해야합니까?

이러한 예제를 조사하면 서비스를 설명하는 데 사용되는 WSDL이 제공되는 서비스와 일치하지 않는다고 생각하게됩니다. 어딘가 잘못된 유형 일 수도 있고 다른 데이터 구조 일 수도 있습니다.

내가 가장 적합한 응답이 무엇인지 확신 할 수 없습니다. 명백한 것 (공급자에게 물건을 고치도록하십시오)을 사용할 수 없다고 가정하면 가장 적절한 응답이 무엇인지 확신 할 수 없습니다.

내가 생각할 수있는 몇 가지 옵션 :

  • 가 고정 된 WSDL 확인을?
  • 생성 된 코드를 해킹 했습니까?
  • 다른 옵션은 있습니까?
  • 좋은 옵션이 없나요?

어떤 좋은 경험이 있었습니까? 실제 환경에서 효과가있는 것은 무엇입니까?

감사

+2

WSDL은 계약을 정의합니다. 계약이 잘못되면 수정해야합니다. – RichardOD

+3

@RichardOD, 확실히 이상적인 세상. 그러나 일부 회사/개인은 계약의 측면을지지하는 데 그다지 관심이 없습니다. 그리고 때로는 현실 세계에서 할 수있는 일이 없습니다. – Glen

+1

@Glen, 제 세계에서 제게는 사용하지 말아야한다는 암시적인 지원되지 않는 제품을 사용하는 것과 비슷합니다. 함께 일하기를 원하는 비즈니스에 걸어 들어가는 것이 아니라 계약서를 작성하고 준수 할 것을 기대합니다. 그들은 당신에게 계약의 편을 제공해야합니다. 그들이하지 않거나하지 않는다면, 그것은 다소 그런 종류의 사업을하고 싶지 않다는 것을 의미하며 아마 그들을 시도하고 강제하는 것은 좋은 생각이 아닙니다. 그리고 제공된 WSDL을 수정하는 것은 경계선을 넘는 코드 분할입니다. – nicerobot

답변

1
내가 첫 번째 옵션 시도를하려는

는 고정 된 WSDL을합니다. 작동하지 않는다면 생성 된 코드를 해킹 할 수 있습니다.

물론 서비스가 WSDL과 근본적으로 다른 경우 두 가지 옵션에 많은 행운이 없을 수도 있습니다.

운 좋게도 다른 방법이 있습니다. 일부 웹 서비스 프레임 워크는 동적으로 생성 된 WSDL을 반환하는 것을 지원합니다.

AXIS 1.4 서비스를 사용하면 service url + '? WSDL'에서 GET을 수행하고 동적으로 생성 된 WSDL을 얻을 수 있다는 것을 알고 있습니다.

http://foo.com/service/?WSDL

1

먼저 도구에서 WSDL에 대한 올바른 바인딩을 만들었는지 확인하려고합니다. WSDL이 올 바르고 도구가 올바른 SOAP 요청/응답 처리를 초래하지 않는 잘못된 바인딩을 생성하는 경우 도구 작성자는 수정 사항이나 해결 방법을 제공 할 수 있습니다.