串口通信和Web应用程序

时间:2013-09-10 22:58:18

标签: java web-services web-applications serial-port

我需要集成我的REST(Jersey)和串口通信。我现在遇到处理服务器操作的问题。基本上我使用RXTXcomm.jar库并直接打开端口(串口参数是硬编码的):

public class ApplicationConfig extends Application {
      public ApplicationConfig () {
            // init serial port here
      }
}

我的问题:

  1. 首先调用我的API来实例化init类。我可以在服务器启动后以某种方式强制进行初始化吗?
  2. 第二是港口关闭。当我停止服务器时,我需要关闭我的端口。如何检测服务器停止事件?
  3. 你觉得这种方法存在一些问题吗? (这是可选的问题)。
  4. 感谢。


    我不想通过HTTP请求传递数据。只需使用一些参数,然后在REST资源内部填充串行数据。请求将非常罕见,仅来自一个“客户”。

2 个答案:

答案 0 :(得分:1)

我想如果在第一个请求仍在写入串口的情况下发出第二个请求,则可能存在潜在问题。

您可以创建一个独立的应用程序,它将通过tcp / ip(或命名管道或其他ipc方式)接收数据,将其缓冲在队列中并将其发送到串行端口。

答案 1 :(得分:1)

如果实现ServletContextListener,则可以在服务器启动时初始化init类。

  1. ServletContextListener有一个contextInitialized(javax.servlet.ServletContextEvent)方法,在服务器启动时会被调用,您可以覆盖它以初始化您的init类。
  2. ServletContextListenercontextDestroyed(javax.servlet.ServletContextEvent),当服务器停止时会调用它,您可以覆盖它以关闭您的端口。
  3. 你好像是一个爱好项目,所以我建议你先让它工作,然后考虑优化/清洁。