带有Swing和Web GUI的Java应用程序

带有Swing和Web GUI的Java应用程序,java,swing,web-services,user-interface,ejb,Java,Swing,Web Services,User Interface,Ejb,我需要为某些业务的内部用户构建一个桌面应用程序。它还需要为外部用户提供基于web的GUI。我知道,有了web GUI,内部和外部用户都可以访问它,但有些因素超出了我们的控制范围,因此,桌面应用程序确实是不可避免的。出于这个问题的目的,我想重点介绍支持桌面客户端Swing和浏览器客户端的方法 是否需要遵循任何最佳实践?我可以想到以下几点: 将服务类公开为web服务,并从Swing客户端和web客户端使用这些服务 将EJB业务公开到JavaEE技术中,并使用Swing客户端作为EJB客户端。Web客

我需要为某些业务的内部用户构建一个桌面应用程序。它还需要为外部用户提供基于web的GUI。我知道,有了web GUI,内部和外部用户都可以访问它,但有些因素超出了我们的控制范围,因此,桌面应用程序确实是不可避免的。出于这个问题的目的,我想重点介绍支持桌面客户端Swing和浏览器客户端的方法

是否需要遵循任何最佳实践?我可以想到以下几点:

将服务类公开为web服务,并从Swing客户端和web客户端使用这些服务 将EJB业务公开到JavaEE技术中,并使用Swing客户端作为EJB客户端。Web客户端可以使用控制器类与EJB交互 除了web服务提供的技术不可知论之外,使用这两种方法还有什么已知的好处吗


另外,对于swing客户端,我正在考虑使用JavaWebStart来简化分发。我以前从未使用过它,但据我所知,它可以支持启动时的自动版本检查,并在需要时更新客户端-这是否正确?

如果您需要避免浏览器上对Java/JVM的依赖性,而您很可能至少希望这样,那么您肯定应该使用混合Swing-Vaadin方法。使用Swing或JavaFX构建内部应用程序,使用Vaadin构建web部件。Vaadin中的编程模型非常接近于典型的桌面UI库,对于相同的开发人员来说,使用这两个代码库非常容易,当然,您将使用完全相同的后端


请参阅我最近为演示类似的设置而构建的版本。

它可以支持启动时的自动版本检查,并在需要时更新客户端-这是否正确?是的,请阅读更多。谢谢JWS链接。有人能提供关于在服务层支持Swing和Web客户端的最佳实践的信息吗?