2012-02-09 44 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