2011-08-04 23 views
1

嗨,我有一個寧靜的項目,我從客戶端進行休息電話。但對於一個案例,我需要從服務器端進行寧靜的調用。我怎樣才能做到這一點?如何從服務器進行寧靜的通話?

+0

你的意思是調用另一臺服務器?而不是客戶,我希望。 – Jonas

+0

是調用另一臺服務器 –

回答

0

JAX/RS客戶端庫可用於服務器代碼。

我的blog有更多的細節,但這裏是相關的代碼。我正在使用Apache Wink。

Resource editionResource = libraryClient.resource( 
       "http://localhost:9085/LibraryWink/library/editions」 
       ); 

BookEdition theEdition = new BookEdition( 
      /* title, isbn etc */ 
     ); 

ClientResponse response = editionResource 
    .contentType(MediaType.APPLICATION_JSON) 
    .accept(MediaType.APPLICATION_JSON)      
    .post(theEdition); 
0

正如@Jonas提到的那樣使用HttpClient。事實上,在這種情況下,客戶端和服務器之間沒有區別。您的服務器是另一臺服務器的客戶端。

但要小心:

,如果你在你沒有預料到自己開的插座(至少從EJB)的Java EE環境。 「正確的」解決方案是使用JCA連接到其他系統。我曾經實現過JCA適配器:它並不那麼難,但需要一些努力。

可能更簡單的解決方法是將打開套接字的代碼放入servlet中,例如一個servlet通過HTTP轉向另一個(運行在不同的服務器上)。我認爲Java EE規範並沒有嚴格禁止它。