我是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)用于执行任何Java程序。但是,它所做的只是执行Java二进制文件中的字节代码,例如Java存档(.jar)文件。它不包括许多Java EE库的实现。
web应用程序通常作为web存档(.war)文件部署,通常需要JVM不提供的库。此外,标准的Java web应用程序体系结构意味着应用程序的入口点不在.war文件中——它在web应用程序服务器中,然后调用.war文件中提供的代码。web应用服务器,包括像Glassfish这样的完整的J2EE容器,也包括像Tomcat和Jetty这样更有限的web服务器,作为中间层,运行在JVM上并执行.war文件中提供的web应用程序。
也许在IIS服务器上运行应用程序的最好方法是将IIS服务器设置为前端-因此面向客户端的端口将在IIS控制之下-并将web服务器设置为后端,IIS将相关请求转发给它。以下问题的答案提供了一些可能有用的链接:在Microsoft IIS 7中部署War File