2009-08-20 66 views
1

天兒真好通信,PHP和Java服務器

我有一個項目,我需要建立一個「活」的Java應用程序(服務器)保存有關的域對象(這是一個私人拍賣系統)的狀態。 Java服務器將與持有主要後端業務功能的PHP類進行通信。 PHP類將是無狀態的。

我需要將域對象傳遞給java服務器(來自PHP),以便可以隨時間管理其狀態。通過調用Web服務器上的PHP類,需要將域對象的更改保存回數據存儲區。

我想使用XML-RPC類(例如Zend_Xmlrpc_Server)封裝我的PHP類,因爲它們將是無狀態的。如果/當Java應用程序需要寫入數據存儲區(通過調用正確的PHP類方法),則使用XML-RPC客戶端庫類即可。

但是,我不確定如何在Java應用程序中公開功能,以便通過PHP方法調用來訪問它。任何人都可以告訴我最簡單的方法來做到這一點在Java中......我只是寫一個多線程的應用程序,並公開一個套接字?我正在使用正確的庫類來構造Java應用程序。

乾杯, 保羅

回答

4

暴露你的服務器端Java代碼作爲Web服務。

有很多方法可以在Java中做到這一點,但有兩個想到的是EJB3 WS AnnotationsApache Axis。另外,無論您選擇何種技術,都要確保您將其視爲傳輸並將實際處理邏輯與其分開。

+1

我第二種方法。您不希望將系統的這兩個部分和Web服務方法(或基於消息的REST,... - 列表是無止境的)緊密結合在一起,這使您可以在這兩個部分之間簽訂明確的協議。 Apache也有CXF作爲Axis的替代品。 – SteveD 2009-08-20 09:05:34

+0

謝謝,但我的後端java應用程序需要存儲狀態 - 所以需要隨時在內存中運行。這些方法是否與此兼容? 乾杯,保羅。 – 2009-08-20 09:38:28

+0

就像我在運輸概念中所說的那樣,一定要保持它的獨立性,然後剩下的就是一個Java服務器,它肯定會允許你保持狀態以這種或那種方式存儲它最強健和最直接的方式在數據庫中。 – 2009-08-20 09:49:11

0

您是否已經試用過PHP Java Bridge工具?

+0

謝謝,我會看看。 – 2009-08-20 09:39:11