2017-10-13 2 views
0

통합 인터뷰 역할에 대한 기술 인터뷰에서이 질문을 받았습니다.클라이언트 관점에서 SOAP 서비스 URL에 액세스

그는 SOAP 웹 서비스를 완전히 이해하고있었습니다.

질문). SOAP을 통해 웹 서비스를 클라이언트에 노출한다고 가정 해보십시오. 서비스를 제공하는 URL은 사용자가 확인할 때 실행 중입니다. 그러나 클라이언트에 문제가있어 그는 웹 서비스에 액세스 할 수 없습니다. 이 문제를 어떻게 해결 하시겠습니까?

내 응답 :

내가 먼저 클라이언트가 서비스에 액세스하려고하는 URL이 있는지 여부를 확인 할 올바른 것입니다. .wsdl 파일 : 포트를 확인합니다. 바인딩 &은 URL에 SOAP 요청을 보낼 때 SOAP UI를 통해 로컬에서 SOAP 응답을 받는지 여부를 한 번 확인합니다. 오류가 발생하면 다음과 같은 오류 유형에 따라 문제를 해결할 수 있습니다. 페이지를 찾을 수 없거나 null 예외 등이 발생했습니다.

나는 그가 다른 시점을 기대하고 있다고 느꼈습니다. 그는 어떤 레지스트리에서 당신이 호스트 된 모든 웹 서비스를 점검 할 것인가를 암시했다. (나는 이것이 많은 프로덕션 지원 문제라고 생각한다.)

나는 UDDI 레지스트리를 들여다 보겠다고 말했다. 이.

올바른 접근 방법에 대한 귀하의 의견을 알려주십시오.

답변

1

아파치 jUDDI PMC는 여기에서. 예 클라이언트가 UDDI 서버와 등록 된 위치를 알고 클라이언트가 UDDI 서버에서 무엇을 쿼리해야 하는지를 알고 있다고 가정하고 UDDI 쿼리가 그 일부인 경우 UDDI를 사용하여 클라이언트가 올바른 위치를 가리키고 있는지 확인할 수 있습니다 클라이언트의 정상적인 워크 플로우. 그것은 많은 가정이지만 확실하게 실현 가능합니다.

대부분의 경우 엔드 포인트는 구성 파일에 있거나 어딘가에 바둑판 식으로 코딩되어 있습니다. 말했다

,이 (클라이언트의 관점에서) SOAP 서비스 연결 URL을

  • 핑 원격 호스트
  • HTTP GET에있는 호스트 이름의

    • DNS 해상도를 확인하기 위해 목록으로 이동의 나 SOAP 서비스의 URL +? wsdl (일반적으로 작동합니다). 또한 SSL 연결을 확인하는 좋은 기회입니다.
    • 엔드 포인트 URL을 식별하기 위해 WSDL 문서가 반환된다고 가정하면 WSDL 문서를 구문 분석 할 수도 있습니다.
    • 마지막으로 모두 작동하면 서비스를 실행하십시오. HTTP (200)는 긍정적 인 신호를 일반적입니다

    편집 : 또 다른 방법은 간단 리턴한다 질문에 대한 답이 참/거짓 "I가 열 건가요 모든 SOAP 서비스에 대한 매우 간단한 API WSDL (방법)을 구현하는 것입니다 사업?". 이 방법은 외부 종속성 (데이터베이스 및 겹침 점)을 테스트하여 서비스를 사용할 수 있는지 여부를 식별하기위한 표준화 된 접근 방식을 제공합니다.

  • +0

    흥미로운 의견 감사합니다. 그러나 나는 당신이 공유하는이 점에 대한 설명이 필요합니다.'끝점은 어딘가 설정 파일에 있거나 바보 같은 코드로 하드 ​​코딩되어 있습니다 : 어느 설정 파일에 대해 이야기하고 있습니까? 구체적으로 할 수 있습니까? & 'SOAP 서비스의 URL을 얻습니다. +? wsdl (대개 작동합니다). 이것은 또한 SSL 연결을 확인하기에 좋은 시간입니다. '그래서 get()을 호출하면 URL에 wsdl 파일을 열려고합니다. 그렇다면 우리는 무엇으로부터 결론을 내릴 수 있습니까? –

    +0

    원격 웹 서비스와 상호 작용하는 소프트웨어를 개발할 때 해당 서비스의 위치를 ​​어딘가에 저장해야합니다. 언어에 따라 .config 파일 (.net), .properties 파일 (java) 또는 기타 다른 것일 수 있습니다. 그렇지 않으면 하드 코딩됩니다. URL이 변경되면 어떻게됩니까? – spy

    +0

    'SOAP 서비스의 URL에 HTTP를 가져 오면 +? wsdl "대부분의 웹 서비스 프레임 워크는 리플렉션에서 즉시 wsdl 문서를 만듭니다 .wsdl이 응답하면 서비스에 도달 할 수있는 가능성이 커집니다. 데이터베이스와 같이 서비스가 필요로하는 리소스가 온라인 상태인지 여부를 알려줍니다. – spy

    관련 문제