2013-03-10 71 views
2

我們正在開發一個小型應用程序,需要通過專用tcp協議與機器接口進行通信。在Java EE中創建Netty監聽器

對於這種低層次的通信內容,我們使用Netty來實現必要的編碼器和解碼器。由於我們還需要一些Java EE的東西,比如WebService,JPA等,我們考慮將netty服務器集成到Java EE 6應用程序中。因此,我們將使用ApplicationScoped託管CDI bean,其中引導是在PostConstruct方法中觸發的,並且取消註冊是在PreDestroy回調中完成的。

所以今天的主要問題是:

這會導致問題,因爲據我所知,這在技術上是不允許在Java EE環境,啓動線程(我認爲這裏的Netty開始一些線程)?

如果是的話,會出現什麼樣的問題?由於我們不需要集羣,因此我們只需使用標準Java EE 6應用服務器(如GlassFish)。

回答

0

大多數人會反對,因爲不正當的終止和資源鎖定會導致災難性的結果。但是,如果你知道你在做什麼,沒有理由不這樣做。

也就是說,根據您的需要,我建議首先查看Java連接器體系結構。它已經爲連接,交易,安全,生命週期,工作等管理提供了既定的合同。所以,你有更好的機會編寫一個好的實現,並將線程管理轉移到容器。請參閱thisthis以幫助您入門。

+0

好的,謝謝。我們將嘗試通過JCA實現它。 – Ingo 2013-03-15 10:05:45