2016-11-24 25 views
0

是否有作爲jar運行的任何Web服務?除tomcat以外的Java web服務

我已經嘗試使用spark,但除了運行jar我需要它能夠呈現jsp文件。

我目前的情況是,我有一個依賴於另一個項目(.jar)的tomcat(.war)項目,我想在第二個項目中添加一些Web功能。 但是我無法將它改爲.war,因爲一個.war項目不能依賴於另一個.war項目。

任何幫助或指導,將不勝感激。

+0

爲什麼不嵌入你想提高到一個WAR JAR文件? (你也可以考慮其他的應用程序服務器,但是我沒看到。將Web部件從JAR庫中分離出來是一個好習慣。 – eckes

回答

1

我正面臨類似的問題,我的解決方法不夠優雅,但我還沒找到更好的方法。

要重申的問題:從項目B.jar

  • ProjectA.war取決於X.class(或更多)
  • ProjectB.jar需要被重新包裝爲項目B.war

我跟去解決辦法:

  • 轉換ProjectB.jar到ProjectB.war需要
  • 手動提取ProjectB.war的ProjectB.jar文件和引用所提取的.jar爲項目A

的依賴關係(我跟着How to extract .war files in java? ZIP vs JAR

根據您的構建系統上,你還可以設置項目B,以同時爲依賴項構建.war和.jar;我使用的是Maven,這就是我最終要去的路徑*,這樣我就不會每次更新ProjectB時手動挖掘.jar,然後我只是將該.jar列爲ProjectA的依賴項。

* = http://maven.apache.org/plugins/maven-war-plugin/faq.html常見問題底部的「如何創建一個包含我的webapp中的類的JAR?」

+0

你能指點我對maven解決方案嗎?我的項目也是maven項目,這似乎是一個很酷的解決方案,實際上可以幫助更多的地方。 –

+0

是啊,我正在看這個頁面的底部: –

+0

那麼,我不能加倍發帖:https://maven.apache.org/plugins/maven-war-plugin/faq.html它是底部的FAQ,「如何創建一個包含我的webapp中的類的JAR?」 –

0

將通用代碼放入jar中。 (在沒有前端部分的情況下將該代碼重構爲新模塊)。

在戰爭中添加該jar作爲依賴項。

或者如果你能負擔得起,只需開始遷移到微型服務,其中的「tomcat」是在jar中,而不是其他方式。

For instance using Spring Boot

0

你不應該在你的JAR文件添加網絡功能。更好的解決方案是爲您的兩個Web服務提供一個JAR庫。另外,我建議你的第二個web服務使用spring引導,因爲它易於使用和配置,你可以在jiffy上使用jar web服務(嵌入在tomcat中)。

這裏有一個例子: +----------+ +----------+ | WAR | | JAR-WS | | +-------------------+ | | | COMMONS | | | +-------------------+ | +----------+ +----------+