Java GWT作为非web应用程序的一部分

Java GWT作为非web应用程序的一部分,java,eclipse,gwt,jetty,Java,Eclipse,Gwt,Jetty,我们有一个java服务器应用程序,它运行某些批处理作业。它的核心功能不是作为一个web应用程序,没有理由这样做。但是我们想添加一个选项来检查应用程序在网页上做什么。我们认为这可以通过GoogleWebToolkit很好地完成 在我们以前使用GWT的经验中,我们已经在Tomcat上部署了它。但在这种情况下,这似乎是矫枉过正。web部件更像是应用程序实际执行的一个辅助功能 我正在考虑一个将web服务器集成到jar文件中的解决方案——也许是Jetty?因此,完整的java应用程序可以与web/GWT部

我们有一个java服务器应用程序,它运行某些批处理作业。它的核心功能不是作为一个web应用程序,没有理由这样做。但是我们想添加一个选项来检查应用程序在网页上做什么。我们认为这可以通过GoogleWebToolkit很好地完成

在我们以前使用GWT的经验中,我们已经在Tomcat上部署了它。但在这种情况下,这似乎是矫枉过正。web部件更像是应用程序实际执行的一个辅助功能

我正在考虑一个将web服务器集成到jar文件中的解决方案——也许是Jetty?因此,完整的java应用程序可以与web/GWT部分一起部署到单个jar文件中

这可能有性能方面的问题,但web端的用户将非常少。还有其他理由不这样做吗


另外,您能就如何为此配置Eclipse/Ant/Jetty/GWT提供一些建议吗?

我们在以前的项目中也有类似的经验。有一个EclipseRCP应用程序,带有嵌入式Jetty服务器(它是在应用程序启动时以编程方式启动的)。GWT应用程序像往常一样部署到Jetty中。还有一个OSGI服务作为控制器,在GWT服务器和应用程序的其他部分之间提供通信。GWT服务器是常见的RCP服务器,这在大多数示例中都有描述。它引用了控制器。此外,它还是一个事件侦听器,用于支持bot端通信

我认为,我们的主要问题是同步问题。由于EclipseRCP应用程序和GWT部分(每100毫秒接收一次消息)之间存在大量消息,而且GWT在客户端部分和服务器部分之间具有异步通信方式,因此必须创建一些机制来同步这些消息。否则就没有性能问题(除了IE6,它必须被支持:S:D)

希望这能有所帮助

Upd:据我所知,控制器注册为OSGI服务只是为了能够与EclipseRCP部分的其他服务通信。为了与GWT通信,控制器正在实现GWT服务器已知的特殊接口(控制器通过实例化注册为实现者,服务器在控制器中注册为IMessageListener)。该接口位于单独的项目中,该项目也可以内置到.war文件中。该项目还包含许多事件,以支持通过IMessageListener接口从控制器到GWT服务器的反向通信


可能有点困惑,对不起。也许我应该画一个图表。

你介意解释更多关于OSGI服务作为通信控制器的内容吗。我计划在我的应用程序中使用基于gwt的视图和基于rcp的视图。但我不知道如何让他们彼此沟通,我不确定我是否清楚地理解了这个概念。以下是我的理解,如果我错了,请纠正我。1.您的rcp应用程序2中运行着jetty服务器。您有一个OSGI服务作为控制器,它还实现了一个接口IMessageListener。但是gwt服务器是如何与控制器交互的呢。或者控制器如何向gwt服务器发送事件。谢谢你的回复。你在用网页做什么样的交流?如果您只是轮询状态并发出一些命令,那么GWT很容易被过度使用。在我看来,如果你只是从应用程序中获取数据(或者你可以这样做),那么将其作为REST web服务实现会更干净/更轻松。