Java頂級(jí)Java應(yīng)用程序服務(wù)器 Tomcat、Jetty、GlassFish、WildFly
如果你想編寫Java web應(yīng)用程序,首先需要做出一個(gè)艱難的決定:選擇運(yùn)行應(yīng)用程序的Java應(yīng)用程序服務(wù)器。
什么是應(yīng)用服務(wù)器?一般來說,應(yīng)用程序服務(wù)器執(zhí)行Java應(yīng)用程序。在操作系統(tǒng)中啟動(dòng)它們,然后將應(yīng)用程序部署到其中。將應(yīng)用程序服務(wù)器視為運(yùn)行Java代碼并使其正常運(yùn)行的容器。此外,應(yīng)用程序服務(wù)器提供了一些通用的基礎(chǔ)結(jié)構(gòu)和功能功能,你可以在自己的代碼中使用這些功能。
在本文中,我們介紹4個(gè)流行的Java應(yīng)用程序服務(wù)器。
Tomcat
Tomcat是與Apache軟件基金會(huì)開發(fā)的Java web應(yīng)用程序一起使用的最流行的應(yīng)用程序服務(wù)器。
事實(shí)上,Tomcat并沒有實(shí)現(xiàn)JavaEE應(yīng)用程序服務(wù)器所需的所有功能。Tomcat的準(zhǔn)確標(biāo)題應(yīng)該是“web服務(wù)器”或“servlet容器”。但即使Tomcat不支持一些現(xiàn)成的JavaEE特性,你仍然可以使用這些特性中的大部分。你只需要將它們作為附加的第三方依賴項(xiàng)包含在應(yīng)用程序中即可。底線是你可以在Tomcat上運(yùn)行Java EE應(yīng)用程序。
因此,Tomcat是成熟的、文檔豐富的,也是使用最廣泛的Java應(yīng)用程序服務(wù)器。憑借良好的文檔和互聯(lián)網(wǎng)上關(guān)于它的教程,Tomcat是幾乎所有Java web應(yīng)用程序中應(yīng)用服務(wù)器角色的有力競(jìng)爭(zhēng)者。

Jetty
Jetty是另一個(gè)應(yīng)用服務(wù)器(這是由EclipseFoundation開發(fā)的),從技術(shù)上講,它不是一個(gè)功能齊全的JavaEE容器。就像Tomcat一樣,它缺乏對(duì)許多Java EE特性的支持。就像Tomcat一樣,你仍然可以通過包含額外的第三方依賴項(xiàng)來使用大部分功能。
盡管Jetty的市場(chǎng)份額遠(yuǎn)不及Tomcat,但它仍在行業(yè)中廣泛使用。它的兩個(gè)主要賣點(diǎn)是緊湊和占地面積小。兩者都使Jetty非常適合受限環(huán)境和嵌入其他產(chǎn)品。
GlassFish
GlassFish是由Oracle開發(fā)的功能齊全且經(jīng)過認(rèn)證的Java EE應(yīng)用程序服務(wù)器。因此,GlassFish比Tomcat或Jetty更重,而且可以說,操作起來有點(diǎn)困難。
事實(shí)上,GlassFish不僅僅是一個(gè)通用的JavaEE應(yīng)用程序服務(wù)器。它是JavaEE標(biāo)準(zhǔn)的參考實(shí)現(xiàn)。這意味著GlassFish被用來展示Java EE功能,并且它得到了定義Java EE標(biāo)準(zhǔn)的人的貢獻(xiàn)。因此,GlassFish將始終首先支持最新的JavaEE特性。這是一個(gè)優(yōu)點(diǎn)。
WildFly
與GlassFish相比,WildFly的最大優(yōu)勢(shì)是Red Hat提供了一條從WildFly到其商業(yè)支持的應(yīng)用程序服務(wù)器JBoss Enterprise application Platform的簡(jiǎn)單遷移路徑。這意味著,如果你決定這是你需要的,你可以立即使用WildFly,并在將來快速遷移到JBossEAP以獲得商業(yè)支持。
結(jié)論
總的來說,如果你需要更小的占地面積,請(qǐng)考慮Jetty。如果你的項(xiàng)目中需要廣泛的Java EE支持,請(qǐng)使用WildFly。最重要的是,如果你的組織已經(jīng)在其他項(xiàng)目中使用了特定的應(yīng)用程序服務(wù)器,那么只需效仿即可。