2017-02-22 47 views
2

我們有一個現有的eclipse RCP應用程序,它可以作爲獨立產品使用。在高層次上,該產品用於使用其UI配置圖像規格,並且可以基於這些配置導出示例圖像。 現在我們正在開發另一個Web應用程序,它有幾個模塊,其中一個模塊是開發我們的Eclipse RCP應用程序所做的一些事情。 爲了提供RCP應用程序的快速集成以進行演示,我計劃在服務器機器中單獨運行RCP應用程序,並將其靜態功能作爲REST風格的Web服務公開。所以模塊應該對RCP應用程序進行RESTful調用。在RCP應用程序中具有RESTful服務

現在剛剛開始我試圖嵌入碼頭服務器像下面

enter image description here

enter image description here

RCP應用程序的啓動過程中託管REST服務,但事情是碼頭後服務器啓動我無法使用我配置的路徑訪問TestWebService。所以我很困惑,如果這是在RCP應用程序中使用RESTful服務的正確方法。請注意,iam能夠通過http://localhost:1002訪問服務器,但不能訪問該服務。

以下是控制檯日誌時,我打http://localhost:1002/hello/test

enter image description here

+0

你確定Jetty開始嗎?你能給我們提供一些日誌嗎? –

+0

用日誌更新了我的帖子。看起來RESTful服務類沒有被加載/註冊到Servlet中。如果我將jetty嵌入到獨立虛擬項目內的java類的主方法中,此相同的代碼工作正常。 –

回答

1

這是您的實驗一個非常奇怪的架構。 我的意思是編寫一個RCP應用程序,它監聽一個端口並在其上提供REST服務;這可能會導致更多的障礙。相反,我會把它分成兩個軟件工件:一個RCP應用程序和一個Web應用程序(.war)。

你可以提取一個業務邏輯jar(它可以是一個OSGi插件,如果有必要的話),它包含了你的圖像處理邏輯。 然後在webapp中包含這個插件/ .jar作爲依賴項,並通過Web容器(Tomcat,GlassFish等)提供它的功能。

因此,您的其他(第三個)應用程序將連接到Web這個.war文件提供的服務。

opt.1)如果您需要一個運行實例(由於數據庫或其他共享資源),那麼您的RCP-app也必須使用此REST服務。

opt.2)如果沒有,那麼簡單地將包含業務邏輯的.jar /插件編譯到您的RCP-app中。

+0

我完全同意你的看法,當然我所要做的並不是一個理想的解決方案。但這裏主要考慮的是我們想要快速演示我們已有的RCP應用程序的功能,並在不更改RCP應用程序的情況下以最小的努力提供集成。我相信在將來,我們會分配時間來重構業務邏輯,就像您在代碼中所說的那樣。 –

相關問題