2012-04-30 117 views
2

我在開發將使用NetBeans 7.1.1中創建的Java RESTful服務的PHP客戶端時遇到一些問題。使用PHP客戶端消費Java RESTFul Web服務

對於那些不知道的人:當您創建基於MySQL數據庫(實體)的Java RESTful Web服務時,NetBeans將自動創建實體類以及可以知道的每個實體「facade」作爲服務提供商。

我開發了一個使用Java RESTful Web服務服務器和Java RESTful客戶端的Web應用程序,該客戶端通過Jersey & Servlets來使用Web服務。

現在有了一個有計劃的PHP客戶端:我已經使用了很多,我看到的是:沒有互操作性(或稱爲「noob」),這是Web服務的目的之一。我知道如何在PHP中創建RESTful Web服務,並與PHP客戶端進行通信,並且與Java相同,但我想要的是創建Java RESTful Web服務服務器和一個PHP客戶端。

對不起,如果我在主題上說錯了話,請隨時糾正我。

如果有人能幫助我,給我一些想法,代碼示例,解釋「訣竅」,我會很感激。

+0

REST風格的Web服務是可互操作的,那麼您面臨的具體問題是什麼?您如何爲PHP REST風格的WS編寫PHP客戶端,爲什麼不能對Java端點進行相同的操作? –

+0

@hugh - 我在最後編輯了第二個問題。這實際上是一個單獨的問題。隨意問一個新的SO問題。對於那些在這裏閱讀它:「PS:如果,順便說一句,有人可以向我解釋,如何手動部署java restful web服務服務器(.war)到Apache Tomcat文件夾,**與數據庫連接* *,會很嚇人。「 – ArjunShankar

回答

0

這是一個相當容易解決的問題。對於企業應用程序,我已經建模了相同的解決方案。 Java層具有映射到SOAP端點(外部系統)以及實體對象(通過Hibernate/IBatis映射)的混合的CXF寧靜web服務。消費CXF休息層非常簡單。在PHP中,我肯定會推薦使用Guzzle客戶端。

/**使用REST服務**/

$client = new Client("http://example.com/); 

$locationRequest = $client->get('/someservice/rest/location/findstatebyzip.json?zip=12345'); 
$locationResponse = $locationRequest->send(); 

$locationResults = json_decode($locationResponse->getBody()); 

約狂飲客戶端的偉大的事情是,你不需要啓用/安裝捲曲,也可以使用其他傳輸機制。