我们有一个运行某些批处理作业的java服务器应用程序。它的核心功能不是作为Web应用程序而且没有理由这样做。但我们想添加一个选项来检查应用程序在网页上的功能。我们认为这可以通过Google Web Toolkit很好地完成。
在我们之前使用GWT的任何经验中,我们已经在Tomcat上部署了它。但在这种情况下,它似乎有点矫枉过正。 Web部件更像是应用程序实际执行的功能。
我正在考虑将Web服务器集成到jar文件中的解决方案 - 也许是Jetty?这样就可以将完整的Java应用程序与web / GWT部分一起部署到单个jar文件中。
可能存在性能方面,但网络方面的用户很少。还有其他原因不这样做吗?
而且,您能否就如何为此配置Eclipse / Ant / Jetty / GWT提供一些建议?
答案 0 :(得分:1)
我们在之前的项目中有过类似的经历。有一个eclipse-rcp应用程序,带有嵌入式Jetty服务器(它是在应用程序启动时以编程方式启动的)。 GWT应用程序通常被部署到Jetty中。还有一个OSGI服务作为控制器来提供GWT服务器和应用程序的其他部分之间的通信。 GWT服务器是通常的RCP服务器,在大多数示例中都有描述。它有一个控制器的参考。此外,它是一个事件监听器,支持机器人端通信。
我认为我们面临的主要问题是同步问题。由于eclipse-rcp应用程序之间存在大量消息,GWT部分(每个接收消息都说100毫秒)和GWT在客户端部分及其服务器部分之间有异步通信方式,因此必须创建一些机制同步这些消息。否则没有性能问题(除了必须支持的IE 6.S:D)。
希望这会有所帮助。
更新:据我记忆,控制器注册为OSGI服务只是为了能够与Eclipse-RCP部分的其他服务进行通信。为了与GWT通信,控制器正在实现GWT服务器已知的特殊接口(Controller通过实例化注册为实现者,服务器在控制器中作为IMessageListener注册)。这个界面位于单独的项目中,也可以内置到.war文件中。该项目还包含一些事件,以支持通过IMessageListener接口从控制器到GWT服务器的后向通信。
可能有点令人困惑,抱歉。可能是我应该绘制一个图表..