2010-01-16 19 views
4

我正在與第三方供應商合作,不幸的是,我們需要設置一個SOAP服務器來處理來自它們的請求。我遇到了一些麻煩,找到了解決這個問題的最佳方法。我強加的一個限制是它作爲mod_perl2處理程序運行。經過一番搜索之後,我發現最好的方式可能是使用XML :: Compile及其SOAP類,但是我正在經歷艱難的時光。部分問題是我對SOAP的理解有限,大多數模塊的文檔對我來說似乎有點神祕。如何在Perl中創建SOAP服務器?

所以,任何人都可以給我一些指針,示例代碼,任何東西?

編輯:我們也被給了一個WSDL文件來使用,這與SOAP :: WSDL不兼容(「不支持的全局類型在... 看起來像一個rpc /文字WSDL,它不支持SOAP :: WSDL)

編輯:XML ::編譯:: SOAP抱怨當使用帶有XML ::編譯:: WSDL11的WSDL時,「RPC編碼不支持此版本」。可以/不應該擔心WSDL文件?

+0

僅供參考,我結束了,這是更乾淨,比我需要的解決方案..使用SOAP :: Parser來拉取我需要的信息,並使用一個輸出XML填充模板來填充需要的值。我仍然很好奇,是否有一種簡單的方法可以通過獨立於Web服務器的WSDL文件來創建簡單的SOAP服務器。 – kbosak 2010-01-20 19:15:09

+0

注意:SOAP :: Parser是一個不錯的選擇,即使它有效。這是一箇舊模塊,我必須從源代碼安裝,因爲它將mod_perl作爲依賴項。它也爲我打破了SOAP :: Lite。 – kbosak 2010-01-21 19:41:10

回答

3

如果您對SOAP的理解有限,請先關注SOAP,然後再考慮實現它,這裏有很多SOAP tutorials,大多數文檔可能看起來很神祕,你不知道SOAP。

這並不是一個棘手的過程。當涉及到大步時,它與任何其他web編程都沒有什麼不同:

  • 您得到一個SOAP請求,它是一些XML。
  • 您將XML分開以找出要執行的操作。
  • 你把一些XML作爲響應放在一起。
  • 您返回響應。

XML::Compile將照顧你的大部分細節。

在開始編寫自己的服務器之前,你可能會考慮爲現有的SOAP服務器編寫一個客戶端來給自己一些練習。

+0

我已經看過XML :: Compile :: SOAP,但還沒有想出如何將它們結合在一起。另外,我想要使用給我們的WSDL文件。 – kbosak 2010-01-16 15:43:38

+3

不要從代碼開始。從學習SOAP開始。在那之前你不會理解代碼。 – 2010-01-16 16:08:12

+0

我瞭解SOAP和WSDL的基礎知識。我希望得到一些簡單的例子或指導什麼模塊使用以及如何使用它們。 – kbosak 2010-01-16 16:31:39