2012-02-09 23 views
0

希望你們能幫助我。從運行Web應用程序的玻璃魚服務器收聽Java內的串行端口

  1. 我在我的筆記本電腦上進入串行連接的信息。
  2. 這個信息傳遞給業務邏輯在Web應用程序 - 在Glassfish V3.1.1運行[商業規則和數據庫的讀/持久發生在這裏]
  3. 取決於什麼是業務邏輯返回,網頁被更新(使用A4J:推)

我的問題是:

  • 是否可以使用Java通訊和RXTX庫中的GlassFish服務器,以獲得串行數據?
  • 我想「聽」串口,這樣當有事情發生時(等待終止字符),就會將信息傳遞給業務邏輯。我不想輪詢串行端口(必須是實時)

我真的希望得到任何答案, 非常感謝您

+0

你試過了嗎? – home 2012-02-09 15:42:08

回答

0

這樣做的Java EE的辦法就是實現你串行通信代碼作爲JCA入站資源適配器,而不是觸發一個消息驅動的bean,這會觸發您的業務邏輯(我認爲是EJB調用),然後觸發推送事件 - 可能通過JMS。

不太符合的方式是直接在Web應用程序中激發通信線程, G。在servlet或應用程序範圍的bean中。這個解決方案將使Java EE架構師哭泣,但會更加簡單,如果您不希望發生併發問題(如果您要寫入串行端口時會出現這種情況),或者需要事務(例如,在業務層出現樂觀鎖定錯誤時消息不需要重播)。

+0

謝謝你的回答,我已經意識到我的原始架構是錯誤的,就好像Web應用程序離線一樣,它會降低整個系統的性能。 我已經將體系結構更改爲兩個單獨的應用程序: 1)獨立JavaEE應用程序正在偵聽串行連接並根據信息處理業務邏輯。 2)管理員類型任務的Web應用程序。 無論如何謝謝你的回答。 – user1199961 2012-02-14 11:58:32