2011-03-23 32 views
3

哪個是從PHP調用Java的最佳選擇?PHP-Java interop - Gearman或PJB?

或別的東西完全? 「最好」的意思是易於使用,可靠,透明(用於調試目的) - 整個辣醬玉米餅餡。

換句話說,任何一種解決方案都有什麼重大缺陷?

編輯:原因是這是一個需要使用第三方SOAP服務的PHP站點。在WSDL中定義的類型層次似乎對於任何純粹的PHP客戶端來說太複雜了。

回答

3

PHP/Java橋樑是功能性的,但我們發現它傾向於離開殭屍JVM進程,因爲Apache兒童必須將其排除在kill -9之外。我們最終每天運行一個cron工作來解決這個問題。我們只將它用於一個特定的類(一個接口類到某個人的可怕的 SOAP端點),並且在打字時,它有點挑剔,但它確實對我們有用。 (殭屍進程問題可能是由於我們當時使用的史前PHP版本,所以它現在可能已被修復。)

我對Gearman和Java沒有任何經驗,但大量的它與PHP。與大部分人一起工作是一件愉快的事情。最煩人的問題是處理來自調用者的異步更新需要一些相當詳細的代碼來處理所有可能的狀態。然而,對於即發即棄和即時獲得即時結果RPC而言,實在難以打敗。

+0

歡呼聲 - 我們有完全相同的問題,麻煩SOAP服務 – 2011-03-23 05:15:21

+0

我不認爲有一個非麻煩的一個。該供應商提供銷售稅服務,並且由於互操作性問題而非常猶豫建議除Java客戶端以外的任何其他服務。 – Charles 2011-03-23 05:22:40

3

Gearman可能不是真正的解決方案(除非你真的需要一個工作隊列而不是某種形式的RPC)。它可以以阻塞/同步的方式運行,但是它給開發者帶來了很多開銷(代碼/應用程序/等等),因爲我猜測這是一項簡單的任務?

不知道你在做什麼,我會在那裏拋出一些建議。 XML-RPC(可能比SOAP差一些)或者可能是Facebook的Thrift [1],Apache Avro [2]或Google Protocol Buffers [3]之類的東西?

[1] http://incubator.apache.org/thrift/

[2] http://avro.apache.org/

[3] http://code.google.com/apis/protocolbuffers/

+0

謝謝 - 我編輯了這個問題來描述爲什麼我們需要這個,但我會考慮這些建議 – 2011-03-28 03:21:26

+0

啊哈,我看到了問題... 我認爲你已經嘗試過所有的PHP庫像SOAP庫一樣Zend_Soap [和http://sourceforge.net/projects/nusoap/]?你打算做的(或者需要)阻止的電話? (對不起,有很多問題) – 2011-03-28 09:21:08