2010-03-03 45 views
1

我在寫一個JAX-RS web服務。它通過響應客戶端調用:是否有Java EE應用程序的「Socket連接池」?

  1. 檢索一些信息從數據庫
  2. 撥打電話到外部服務器

對於2)服務器不公開Web服務接口(即無WSDL接口或REST API)。相反,它使用TCPIP上的自定義協議。我希望從我的JAX-RS資源直接到該服務器進行客戶端調用,但我不希望打開連接,進行身份驗證並關閉每次對我的JAX-RS資源的調用的連接。有沒有解決的辦法?換句話說,有沒有像Java EE應用程序可以使用的「套接字連接池」?我需要使用類似ESB的東西嗎?還是有一個我可以忽略的選擇?

回答

1

執行此操作的「正確」方法是爲外部服務器編寫JCA連接器。 JCA是Java EE堆棧的一部分,其意義恰恰在於:提供從應用程序服務器到外部系統的入站和出站連接。它支持,認證,交易等(數據庫和JMS代理是通過JCA連接器訪問,順便說一句)。

但是編寫這樣的適配器可能相當困難。也許調查一個輕量級的方法,其中一個通用池庫(也許你發現一些有趣的公共池,或c3p0)可能會更容易。

關於TCP連接池,請看this answer

相關問題