wake-up-neo.com

Java EE Web Profile vs Java EE Full Platform

Was ist der Unterschied zwischen einem Java EE Web Profile zertifizierten Server (wie JOnAS) und einem Java EE Full Platform zertifizierten Server (wie JBoss AS)?

57
Voulzy

Hier ist ein schönes Bild, das es erklärt. Das Webprofil ist eine Teilmenge von Java EE) und soll Entwicklern das Erstellen von leichtgewichtigeren Anwendungen ermöglichen, die in einfachen Servlet-Containern (wie Tomcat oder Jetty) verwendet werden können.

enter image description here

82
Petr Mensik

Zukunft

Ende 2017 hat Oracle der Eclipse Foundation die Verantwortung für Java EE übertragen. Zukünftige Versionen nach Java EE 8 werden als Eclipse Enterprise For Java (EE4J) bezeichnet. Oder Projekt EE4J. Oder vielleicht EE.next. Oder Jakarta EE . Das Branding hat sich in den letzten Monaten geändert.

Im Rahmen der Umstellung von Oracle wird das Eclipse-Team Java EE 8 als Jakarta EE 8 erneut veröffentlichen und dabei die neue Infrastruktur für den Housing-Code und die Erstellung von Builds verwenden. Gleiches EE-Verhalten, gleiche interne Benennung und Paketstruktur. Die unten diskutierten Probleme bezüglich Java EE Web Profile im Vergleich zu Java EE Full Platform gelten weiterhin.

Die nächste Version mit neuen Funktionen (Jakarta EE 9) erfordert jedoch wahrscheinlich eine neue Benennung der Pakete und möglicherweise die Benennung der verschiedenen APIs, aus denen EE besteht. Auch wenn Sie wahrscheinlich mit einer Aufwärtskompatibilität des Verhaltens rechnen können, bedeuten die Namensänderungen, dass Version 9 und höher nicht ​​ein Drop-In-Binary-Ersatz ist. Nicht das Ende der Welt. Dies kann so wenig bedeuten, wie Sie die import Paketnamen in Ihren verschiedenen Klassendateien ändern. Lesen Sie dieses und dieses für Details und Links.

Darüber hinaus steht es dem Eclipse-Team und der Community von Jakarta EE frei, die verschiedenen Teile von EE neu zu definieren oder zu organisieren. Die unten stehende Diskussion über das Java EE-Webprofil im Vergleich zu Java EE-Vollplattform gilt daher möglicherweise nicht direkt für Jakarta EE 9 und höher.

Ein weiterer Hinweis, wenn Sie neuere Java SE-Versionen verwenden, die EE zugrunde liegen… In Java SE 11 werden einige Module gelöscht. Die mit Java EE zusammenhängenden Teile ziehen im Jakarta EE-Projekt in ein neues Zuhause. Andere wie [~ # ~] corba [~ # ~] wurden allen interessierten Organisationen zur Annahme angeboten. Siehe JEP 320 .

Java EE 8

Java EE 8 wurde 2017 veröffentlicht. Siehe Versionsgeschichte .

Weitere Informationen finden Sie unter JSR 366: Java Platform, Enterprise Edition 8 (Java EE 8) Specification .

Java EE ist eine Obermenge von Java Standard Edition (Java SE) . Jede Implementierung von Java EE 8 ist auch eine Implementierung von Java SE 8 oder höher.

Siehe eine Liste von Java EE 8-Technologien , die von Oracle veröffentlicht wurden, mit Links zu JSRs und Spezifikationen.

Alle Profile

Die folgenden Technologien müssen in allen Java EE-Profilen vorhanden sein:

Java SE Version 8 (oder höher)

• Anmerkungen zum Ressourcen- und Komponentenlebenszyklus, die in der Common Annotations-Spezifikation definiert sind (Ressource, Ressourcen, PostConstruct, PreDestroy)

[~ # ~] jndi [~ # ~] “Java:” Namenskontext

• Java Transaktions-API (JTA)

Web-Profil

Das Webprofil ist eine bestimmte Teilmenge der vollständigen EE-Plattform Java, die sich auf häufig verwendete Elemente konzentriert. Implementiert von Produkten wie Apache TomEE oder fast so mit Eclipse Jetty plus Add-Ons .

• Basiselemente, die für alle Java EE-Profile erforderlich sind (oben aufgeführt: Java SE 8, Lebenszyklusanmerkungen, JNDI-Kontext Java: Und JTA)

• Servlet 4.0 ( JSR 369 )

• JavaServer Pages (JSP) 2.3

• Ausdruckssprache (EL) 3.0 ( JSR 341 )

• Debugging-Unterstützung für andere Sprachen (JSR-45) 1.0

• Standard Tag Library für JavaServer Pages (JSTL) 1.2

• JavaServer Faces (JSF) 2.3 ( JSR 372 )

• Java API für RESTful Web Services (JAX-RS) 2.1

• Java API für WebSocket (WebSocket) 1.1 ( JSR 356 )

• Java API für JSON-Verarbeitung (JSON-P) 1.1 ( JSR 374 )

• Java API für JSON-Bindung (JSON-B) 1.0 ( JSR 367 )

• Allgemeine Anmerkungen für die Java -Plattform (JSR-250) 1.3. • Enterprise JavaBeans (EJB) 3.2 Lite

• Java Transaction API (JTA) 1.2

• Java Persistence API (JPA) 2.2

Bean Validation 2.0 ( JSR 380 )

• Managed Beans 1.0

• Abfangjäger 1.2

• Kontexte und Abhängigkeitsinjektion für die Java EE-Plattform 2.0

• Abhängigkeitsinjektion für Java 1.0

• Java EE Security API 1.0

• Java Authentifizierungsdienstanbieter-Schnittstelle für Container (JASPIC) 1.1

Nur Servlet

Als leichtere Alternative zur Verwendung einer Webprofil-Implementierung können Sie mit einer Java Servlet/JSP-Implementierung wie Apache Tomcat ​​ beginnen. oder Eclipse Jetty . Obwohl dies kein offizielles Profil ist, ist dieser Ansatz sehr beliebt. Manchmal auch als Webcontainer bekannt.

[~ # ~] http [~ # ~]Webserver

• Servlet

• JavaServer Pages (JSP)

• Ausdruckssprache (EL)

WebSocket

• JNDI

Wenn Sie dieses Setup verwenden, können Sie selektiv unabhängige Bibliotheken hinzufügen, um selektiv von den verschiedenen Java EE-Technologien zu profitieren. Zum Beispiel verwende ich für meine eigene Arbeit beim Erstellen von Web-Apps mit dem Vaadin Framework Java SE anstelle von EE mit Tomcat und fügen Sie eine Bean Validation Implementierungsbibliothek manuell hinzu, da dies alles ist, was ich aus der Java EE-Liste benötige von Technologien.

Full Java EE

Folgende Technologien werden benötigt:

• Alle Elemente im Webprofil

• EJB 3.2 (außer für EJB-Entity-Beans und zugehöriges EJBQL, die optional gemacht wurden)

• JMS 2.0

• JavaMail 1.6

• Anschluss 1.7

• WebServices 1.4

• Concurrency Utilities 1.0

? Batch1.0

• Java EE Management 1.1

• JACC 1.5

• JSP-Debugging 1.0

• Webservices-Metadaten 2.1

Die folgenden Technologien sind optional:

• EJB 3.2 und frühere Entity Beans und zugehörige EJB-QL

• JAX-RPC 1.1

• JAXR 1.0

• Java EE-Bereitstellung 1.2

Diagramm

Das folgende Diagramm zeigt die verschachtelten Anforderungsgruppen.

diagram of nested groups of various technologies required by Java SE 8, web containers, Java EE 8 Web Profile, Java EE 8 Required, and Java EE 8 Optional

Die Liste über diesem Diagramm ist möglicherweise genauer. Dieses Diagramm wurde nicht überprüft.

38
Basil Bourque

Die Java EE 6-Spezifikation (JSR 316) enthält die folgenden Listen:

Vollständige Java EE-Produktanforderungen

Folgende Technologien werden benötigt:

  • EJB 3.1
  • Servlet 3.0
  • JSP 2.2
  • EL 2.2
  • JMS 1.1
  • JTA 1.1
  • JavaMail 1.4
  • Anschluss 1.6
  • Web Services 1.3
  • JAX-RPC 1.1
  • JAX-WS 2.2
  • JAX-RS 1.1
  • JAXB 2.2
  • JAXR 1.0
  • Java EE Management 1.1
  • Java EE-Bereitstellung 1.2
  • JACC 1.4
  • JASPIC 1.0
  • JSP-Debugging 1.0
  • JSTL 1.2
  • Webservices-Metadaten 2.1
  • JSF 2.0
  • Allgemeine Anmerkungen 1.1
  • Java Persistence 2.0
  • Bean Validation 1.0
  • Managed Beans 1.0
  • Kontexte und Abhängigkeitsinjektion für Java EE 1.0
  • Abhängigkeitsinjektion für Java 1.0

Es gibt keine optionalen Technologien.

Webprofil-Definition

Die folgenden Technologien sind erforderliche Komponenten des Webprofils:

  • Servlet 3.0
  • JavaServer Pages (JSP) 2.2
  • Ausdruckssprache (EL) 2.2
  • Debugging-Unterstützung für andere Sprachen (JSR-45) 1.0
  • Standard Tag Library für JavaServer Pages (JSTL) 1.2
  • JavaServer Faces (JSF) 2.0
  • Allgemeine Anmerkungen zur Java-Plattform (JSR-250) 1.1
  • Enterprise JavaBeans (EJB) 3.1 Lite
  • Java Transaction API (JTA) 1.1
  • Java Persistence API (JPA) 2.0
  • Bean Validation 1.0
  • Managed Beans 1.0
  • Abfangjäger 1.1
  • Kontexte und Abhängigkeitsinjektion für die Java EE Platform 1.0
  • Abhängigkeitsinjektion für Java 1.06

Das Webprofil enthält keine optionalen Komponenten.

Für Java EE 7 gibt es eine Liste aller EE-Technologien, die ebenfalls im Webprofil enthalten sind. Einige Technologien, die früher nur im vollständigen Profil verfügbar waren, sind jetzt im Webprofil enthalten, z. B. JAX-RS.

6
Martin