Java EE包有什么不同? (SDK / normal vs Web Profile)

在Oracle java站点http://www.oracle.com/technetwork/java/javaee/downloads/index-jsp-140710.html中 ,

有Java EE SDK下载和Java EE Web Profile下载。

我应该安装哪一个?

oracle java站点的包只是一个GlassFish开源应用服务器,API文档和一些示例代码。

Web配置文件版本与完整版本之间的区别在于Web配置文件版本仅提供Java EE平台的子集。它专为Web应用程序开发而设计,仅包括大多数Web应用程序所需的那些技术,并且不包括那些企业技术。通常不需要Web应用程序(如JMS和Web服务)

了解GlassFish的Web配置文件版和完整版中包含的技术的差异

阅读规格

请参阅定义Java EE 7 Web Profile的官方文档 。 简短,20页,易于阅读。

打桩图书馆

除了Standard Edition Java(Java SE)中包含的技术之外,任何声称符合Web Profile的Web应用程序服务器都需要提供以下组件。 在Java EE的Wikipedia页面和2013年的Oracle白皮书中找到此列表。

  • Servlet 3.1( JSR 340 )
  • JavaServer Pages(JSP)2.2( JSR 245 )
  • 表达式语言(EL)3.0( JSR 341 )
  • 调试对其他语言的支持( JSR 45 )1.0
  • JavaServer Pages的标准标记库(JSTL)1.2
  • JavaServer Faces(JSF)2.2
  • 用于RESTful Web服务的Java API(JAX-RS)2.0
  • Java平台的通用注释(JSR 250)1.1
  • Enterprise JavaBeans(EJB)3.2 Lite
  • Java Transaction API(JTA)1.2
  • Java Persistence API(JPA)2.1
  • Beanvalidation1.1
  • Managed Beans 1.0
  • 拦截器1.1
  • Java EE平台的上下文和dependency injection1.1
  • Java 1.0的dependency injection

把事情简单化

Java SE – > Servlet / JSP – > Web Profile(部分Java EE) – >完整的Java EE

通常最好保持简单。 如果您只需要Servlets / JSP,那么使用Java SE(常规Java)并使用Servlet引擎(“容器”)(如Tomcat或Jetty )添加与Servlet相关的jar。 许多人这样做。 此类配置未被正式识别为“企业版”,但您可能只需要企业应用程序。 例如,我需要在Vaadin中构建应用程序:Mac OS X上的Java 8 SE,包含NetBeans 8和Tomcat 8。

如果您需要上面列出的某些技术,请首先查看是否可以简单地将一些jar添加到Java SE环境中。 例如, Bean Validation就是这种情况。 但是某些技术可能需要内置于服务器中的支持。 或者,为了方便起见,您可能已经达到了已经为您安装和更新这些库的程度。 如果是这样,请转到Web配置文件服务器,例如TomEE项目,即Tomcat的扩展版本。

如果您需要“完整”中包含的技术,那么请升级到像Glassfish这样的东西。

关于本问题的副本,请参阅我的更长答案 。

我几乎有同样的问题,这个答案在搜索结果中得到了很高的评价。 我最终发现了这篇文章, 介绍了Java EE Web Profile ,它至少从系统管理员的角度来看这个主题。 特别是,第二个图形确实以“图片说千言万语”的方式捕获它。

本文的第二部分将详细介绍面向Java程序员的细节。