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程序员的细节。