我使用JavaFX8 GUI开发了一个java应用程序。程序连续运行(长时间)收集数据,处理数据并写入数据库等。程序的配置和监督都是通过GUI进行的。
我希望能够通过浏览器从任何计算机上查看/控制应用程序。 Vaadin是一个很好的方法(任何更容易的替代方案?)? 我已经尝试了一些调整一些Vaadin示例,并且无论用户连接/断开连接到Web服务,都无法使我的程序连续运行? 它取决于运行Vaadin的服务器是什么?我目前正在使用Jetty(在使用Vaadin插件的eclipse中)
我已经在java中编写代码几年了,但在服务器客户端代码方面经验很少
谢谢
答案 0 :(得分:0)
我认为Vaadin对你来说是个不错的选择。我用这个框架开发了一些应用程序来在SmartTV的Web浏览器上显示一些实时图表。
由于不活动,您的会话很可能会超时。这是默认在Vaadin上实现的,但在这些类型的应用程序中可能很烦人。
使用下面的代码段(应该位于您的用户界面中),当会话到期时,webapp会自动重新加载:
@WebServlet(urlPatterns = "/*", name = "MyUIServlet", asyncSupported = true)
@VaadinServletConfiguration(ui = MyUI.class, productionMode = false)
public static class MyUIServlet extends VaadinServlet implements Serializable {
@Override
protected void servletInitialized() throws ServletException {
super.servletInitialized();
getService().setSystemMessagesProvider((systemMessagesInfo) -> {
CustomizedSystemMessages messages
= new CustomizedSystemMessages();
messages.setSessionExpiredNotificationEnabled(false);
return messages;
});
}
}
另外,请参阅此问题: Setting Vaadin session-timeout parameter
我建议您使用Spring集成,它允许您轻松连接所有依赖项,使用Spring Data以简单的方式访问数据库,以及@Scheduled注释,这对于运行一些后台任务和处理