2013-08-07 2 views
1

Federal Express Rate 요청 웹 서비스에 대한 요율 요청을 처리하기위한 SoapClient 인터페이스를 구현했습니다. 어젯밤 새벽 1 시경에 시스템이 응답 코드를 처리하는 비누 오류 조건을 반환했습니다 (유효한 응답을 찾지 못하면 기본적으로 건너 뛰고 일반 메시지를 보냅니다). 그러나 특별히 처리되지 않았습니다.의도적으로 테스트를 위해 SoapFault가 발생합니까?

서비스 자체가 다운되었을 때 원격 서비스가 실제로 다운 된 경우 Google의 기술 지원 요청이 중단되었을 때 이러한 오류에 대해 고객에게 더욱 유용한 메시지를 보여 드리고자합니다. (일반 메시지는 '나중에 다시 시도하십시오'라고 말하지만, FedEx 서비스가 다운되는 문제를 안다면 'FedEx Rate Service가 일시적으로 사용할 수 없음'이라고 말할 수 있으므로 사람들은 자사의 사이트가 아니라는 것을 알 수 있습니다.)

나는 SoapFault 조건을 처리하기위한 코드를 이미 구현했지만, 이제는 어젯밤에 FedEx 요금 서비스가 잠깐 중단되었으므로 '테스트 방법'문제가 발생합니다.

의도적으로 비누 조건을 트리거하는 방법이 있습니까? 테스트 목적으로 특정 비누 고장이 있습니까?

답변

0

FedEx Rate (또는 다른 어떤) 웹 서비스가 언제 중단 될지 알기가 어렵습니다. 그러나 FedEx Compatible Solutions Program (CSP)에 속하면 테스트 및 프로덕션 서비스를 사용할 수없는 공식 날짜와 시간이 포함 된 전자 메일을 받게됩니다.

해당 일정이 제공되지만, 통지없이 FedEx 서비스 (특별 요금)가 중단 된 것을 확인했습니다. 오류 예외, 오류 알림, 오류 알림 또는 시간 초과 예외가 발생할 수 있습니다.

서비스가 실제로 중단 된 것을 알기가 어려우므로 ""과 같은 메시지를 사용자에게 제공하는 것이 좋습니다. 배송료를 계산할 수 없습니다. 나중에 다시 시도하십시오. 문제가 계속되면 지원 웹 사이트 ()에서 ""으로 전화를 걸면 사용자가 제공 한 데이터와 아무런 관련이 없습니다.

최고!

+0

사실,이 질문의 포인트가 누락되었습니다.서비스 중단 시간을 피하는 방법은 아니지만 서비스가 중단되지 않은 경우에도이를 처리하여 메시지를 표시하는 코드를 작성할 수 있습니다. – Sven

0

의도적으로 서비스 오류를 트리거하려면 사용 가능한 몇 가지 방법이 있습니다.

첫 번째 : WSDL에 대해 다른 URL을 사용하십시오. 그렇게하면 아무 것도 작동하지 않고 SoapFault 예외가 발생합니다. 그러나 https://bugs.php.net/bug.php?id=47584과 특히 [email protected]의 의견을 살펴보십시오. throwing 예외를 활성화하고 @으로 오류를 억제해야하며로드 된 XDebug 확장명과 함께 작동하지 않습니다.

실제로 이것은 부재중인 WSDL 리소스를 잡을 수있는 유일한 방법이기 때문에 어쨌든이 작업을 수행하려는 것입니다.이 작업은 다른 실패와 마찬가지로 발생할 수 있습니다.

다른 점은 SoapUI을보고이를 사용하여 실제 서비스를 모의하고 SoapFault 응답을 되돌릴 수 있습니다.

1

서비스를 조롱하기 위해 SoapUi를 사용하는 것이 좋습니다. 그런 다음 서비스에서 반환 할 응답을 지정할 수 있습니다. 신청서를 모의 서비스에 연결하고 거기에서 테스트하십시오. SoapUi 웹 사이트에서이 게시물을 참조 :

http://www.soapui.org/Service-Mocking/mocking-soap-services.html