2010-09-17 55 views
1

如果應用程序在很大程度上依賴於SOAP Web服務來基於它接收到的數據來提取數據和構建頁面,那麼如果soap web服務不起作用,如何確定並處理它?如何確定肥皂web服務是上下還是如何響應?

是否有可能使WSDL可用但Web服務已關閉?我被告知這是可能的。

歷史瞭解項目和我的顧慮:

  • 此項應用,因爲我們與IT供應我們管理的第三方供應商service-now.com。
  • 問題是現在基於Web的服務無法訪問,我們無法爲最終用戶提供無法訪問的服務。一旦我們瞭解了他們的Web服務規定,我就可以使用soap完全在PHP中重建自助服務即時模塊,並與他們的Web服務交互以對其數據執行CRUD。這樣我們有一個更好看的界面和可訪問性。

我的擔心在於做什麼以及如何在Web服務出現故障時很好地處理錯誤。

我編寫了一個接口定義所有與Web服務的交互,我編寫了一個實現此接口的客戶端類。客戶端類中的所有方法都在try/catch中,所以我知道何時出現請求數據或從此Web服務提取數據的問題。

但是,在向用戶顯示登錄頁面之前先搶先檢查Web服務是否關閉。這是我真正想要得到的。

回答

1

要確定它是關閉的唯一方法是做一個請求。如果它只是拉取數據而不改變它,並且經常拉取相同的數據,那麼您可能需要緩存返回結果(Web服務的所有者甚至可能會這樣),並在服務器不可訪問時提供服務/請求失敗。

服務器可以下當WSDL是可用的,它甚至可以噴出,如果事情是錯誤的服務器上的SOAP錯誤信息不相關的請求等

+0

我很想更新我的問題,以更詳細地解釋情況。 – Chris 2010-09-17 15:40:03

1

這是不尋常的SOAP Web服務有一個聽覺方法。

該方法不處理,但返回一個特定的值。

關於這種方法應該是什麼以及應該返回什麼有多種討論。您可以查看此link的某些選項

如果您的服務心跳方法調用爲您提供該值,那麼該服務已啓動並正在運行,否則連接到服務/服務時出現問題並不起作用。

+0

謝謝,我打算看看這個。我看到的唯一問題是我不是肥皂服務器的實施者,僅僅是肥皂客戶端,所以我將不得不與供應商一起工作,看看我能否讓他們實現這一點。 – Chris 2010-09-17 16:01:41