2014-12-06 92 views
0

這有點類似於以前的文章,但是關注的是一個特定的方面,因爲在這之前我甚至可以向前邁進,所以我真的知道這個具體問題的答案。我需要以JSON對象的形式將信息從Java SE應用程序發送到Java EE Web應用程序。 Java EE Web應用程序從GlassFish中的NetBeans運行。 Java SE和Java EE應用程序都在同一臺計算機上運行。套接字或HTTP POST請求?

什麼是考慮到兩個應用程序之間進行通信的最佳手段,他們都在同一臺計算機上:套接字連接,HTTP POST請求連接,或插座和HTTP POST請求連接的組合?

我真的很感激任何迴應。

+0

HTTP需要套接字,所以任何HTTP連接也是套接字連接,但不是任何套接字連接的HTTP連接。因此,HTTP引入了更多的開銷。 – 2014-12-06 14:36:04

+0

順便一提,非常感謝您的回覆。在上述場景中,套接字連接連接會做我需要做的事嗎? – Daron 2014-12-06 14:40:44

+0

套接字連接可用於傳輸任何字節流,與HTTP相同。在這兩種情況下,您都需要序列化對象。 – 2014-12-06 15:43:30

回答

1

自我實現的插座之間進行選擇,或者如果你已經使用Glassfish的使用HTTP是一個沒有腦子:使用HTTP。

Glassfish已經通過套接字連接,實現了HTTP協議,使用線程池等來驗證和測試代碼。客戶唯一需要做的就是實現一個小的Servlet類來抽象所有複雜的傳輸細節了。

在客戶端,您可以使用庫如Apache HTTP client

確定您可以使用普通套接字。但是你想實現自己的協議嗎?爲什麼?然後它可能在同一臺計算機上的客戶端和服務器上工作。但也許以後你想通過互聯網使用代理服務器或防火牆之間的連接。通過使用正確的庫的HTTP,這不成問題。

+0

vanje ... HTTP Post請求是否允許我在同一臺計算機內進行通信?另外,在Java EE方面,我會放置多少位代碼?我會將代碼放在一個servlet中嗎?或者我將不得不編碼XML文件或任何其他地方? – Daron 2014-12-07 00:03:26

+0

是的,它可以在同一臺計算機上工作。使用環回接口127.0.0.1(localhost)。你可以編寫你的servlet而不需要配置任何XML文件。看看這裏http://stackoverflow.com/questions/5031018/how-to-invoke-a-servlet-without-mapping-in-web-xml – vanje 2014-12-07 00:54:18

+0

我仍在瀏覽你發給我的信息,非常感謝你花時間幫助我。這對我來說非常重要。最後兩個問題:放置servlet的位置是否重要,以及Apache HTTP Client jar是否需要放置在Java SE和Java EE應用程序中? – Daron 2014-12-07 02:09:04