2014-03-27 62 views
0

我對Java真的很陌生,我有一個基本問題。我準備部署我在Netbeans/Glassfish中創建的Java Web服務。我使用Netbeans是因爲開發GUI和工具。當然,我也部署到Netbean內置的GF服務器,因爲它簡單易用。我有一臺帶有IIS的Windows 8服務器,現在我需要部署它。我一直在想,因爲Java 1.7 EE已經在我的IIS服務器上了,我不需要像GF這樣的「容器服務器」,但似乎並不是這樣。所以,我很困惑。 Glassfish創建的服務器與Java EE在安裝時創建的JVM之間的區別是什麼?如果我必須在我的IIS服務器上安裝Glassfish,我是否要解決競爭性的Web服務和端口衝突?Java JVM與Glassfish

謝謝。

+3

你困惑的Java SE和Java EE? – Ray

+1

你的IIS服務器中的Java 1.7 EE如何?你究竟安裝了什麼? – madth3

+1

JavaEE是可以由不同供應商實現的api參考,Glassfish是Oracle對JavaEE應用服務器的實際實現。 – guilhebl

回答

1

Java虛擬機(JVM)用於執行任何Java程序。但是,它所做的只是在Java二進制文件中執行字節碼,例如Java歸檔文件(.jar)。它不包括許多Java EE庫的實現。

通常部署爲Web歸檔(.war)文件的Web應用程序通常需要不由JVM提供的庫。此外,標準Java Web應用程序體系結構意味着應用程序的入口點不在.war文件中 - 它位於Web應用程序服務器中,然後調用.war文件中提供的代碼。

Web應用程序服務器(包括完整的J2EE容器,如Glassfish以及更受限制的Web服務器,如Tomcat和Jetty)充當中間層,運行在JVM上並執行.war文件中提供的Web應用程序。

很可能在IIS服務器上運行應用程序的最佳方式是將IIS服務器設置爲前端 - 因此面向端口的客戶端將在IIS控制下 - 並將Web服務器設置爲後端哪些IIS轉發相關請求。在以下問題的答案提供了一些鏈接,可能是有用的:

Deploy War File in Microsoft IIS 7

+0

謝謝沃倫。這是我需要的澄清!所以如果我正確地理解了你的話,那麼JVM就是給Glassfish一個VB/C#「VM」給IIS的東西。 – Trebor

+1

是的,這是一個相當不錯的平行線。 –