Web services 在RCP应用程序中使用RESTful服务

Web services 在RCP应用程序中使用RESTful服务,web-services,rest,jetty,osgi,eclipse-rcp,Web Services,Rest,Jetty,Osgi,Eclipse Rcp,我们有一个现有的EclipseRCP应用程序,它作为一个独立的产品工作。在较高级别上,该产品用于使用其UI配置图像规范,我们可以基于这些配置导出示例图像。 现在我们正在开发另一个web应用程序,它有几个模块,其中一个模块是开发EclipseRCP应用程序所做的事情。 为了快速集成RCP应用程序进行演示,我计划在服务器机器中单独运行RCP应用程序,并将其静态功能作为RESTful Web服务公开。因此,模块应向RCP应用程序发出RESTful调用 现在,首先,我尝试嵌入一个jetty服务器,以便在

我们有一个现有的EclipseRCP应用程序,它作为一个独立的产品工作。在较高级别上,该产品用于使用其UI配置图像规范,我们可以基于这些配置导出示例图像。 现在我们正在开发另一个web应用程序,它有几个模块,其中一个模块是开发EclipseRCP应用程序所做的事情。 为了快速集成RCP应用程序进行演示,我计划在服务器机器中单独运行RCP应用程序,并将其静态功能作为RESTful Web服务公开。因此,模块应向RCP应用程序发出RESTful调用

现在,首先,我尝试嵌入一个jetty服务器,以便在RCP应用程序启动期间托管REST服务,如下所示

但问题是在Jetty服务器启动后,我无法使用我配置的路径访问TestWebService。因此,我不知道这是否是在RCP应用程序中使用RESTful服务的正确方法。请注意,我可以用鼠标点击服务器,但不能点击服务

以下是我点击时的控制台日志:


这是一个你正在试验的非常奇怪的架构。 我的意思是编写一个RCP应用程序,它侦听端口并在端口上提供REST服务;这可能导致进一步的障碍

相反,我将它分为两个软件构件:一个RCP应用程序和一个web应用程序(.war)

您可以提取一个包含图像处理逻辑的业务逻辑jar(必要时可以是OSGi插件)。 然后将这个插件/.jar作为依赖项包含在webapp中,并通过Web容器(Tomcat、GlassFish等)提供它的功能

因此,您的另一个(第三个)应用程序将连接到此.war文件提供的Web服务

选项1)如果您需要单个正在运行的实例(因为数据库或其他共享资源),那么您的RCP应用程序也必须使用此REST服务


选项2)如果不是,则简单地将包含业务逻辑的.jar/插件编译到您的RCP应用程序中。

我完全同意您的观点,并且可以肯定,我正在尝试的方法与理想的解决方案相差甚远。但这里主要考虑的是,我们希望展示我们已经拥有的RCP应用程序功能的快速演示,并在不更改RCP应用程序的情况下以最小的工作量提供集成。我相信在将来,我们会分配时间从代码中重构业务逻辑,就像你说的那样。你确定Jetty会启动吗?你能给我们提供一些日志吗?用日志更新了我的帖子。看起来RESTful服务类没有在Servlet中加载/注册。如果我将jetty嵌入独立虚拟项目中java类的主方法中,同样的代码也可以正常工作。