Jakarta EE, в миналото известна като Java Platform, Enterprise Edition или Java EE, е изчислителна платформа, използвана най-често за създаването на големи проекти в Java общността. Платформата предоставя API среда за изпълнение, за разработване и управление на бизнес софтуер, включително мрежови и уеб услуги в голям мащаб, които са сигурни и надеждни. Java EE е разширеният вариант на Java Platform Standard Edition (Java SE)„Differences between Java EE and Java SE – Your First Cup: An Introduction to the Java EE Platform“. Docs.oracle.com. 1 април 2012. Посетен на 18 юли 2012. Осигурява API за обектно-релационните планирания, многослойни архитектури и уеб услуги. В платформата се включват главно дизайнерски компоненти, работещи на сървър. Софтуерът за Java EE е написан основно на езика Java. Платформата подчертава конвенцията над конфигурацията и поясненията. XML може да се използва за презаписване на нотациите или да се отклони от началните настройки на платформата.
История на версиите Платформата е била позната като Java 2 Platform, Enterprise Edition или J2EE, до момента, в който името е сменено на Java Platform,
Enterprise Edition или Java EE във версия 5. Сегашната версия е наименувана Jakarta EE.
J2EE 1.2 (12 декември 1999) J2EE 1.3 (24 септември 2001) J2EE 1.4 (11 ноември 2003) Java EE 5 (11 май 2006) Java EE 6 (10 декември 2009) Java EE 7 (28 май 2013jcp.org, 5 април 2013 според официалния документ) Jakarta EE 8 (10 септември 2019) Jakarta EE 9 (очаквано: 31 август 2020)
Стандарти и спецификации Java EE се дефинира чрез нейните спецификации. Java Community Process спецификациите гласят, че разработчиците на софтуер, които допринасят за развитието на Java EE трябва да отговарят на изискванията за съответствие, за да декларират продуктите си.
Java EE включва много на брой API спецификации – RMI, e-mail, JMS, web services, XML, и други, и дефинира критерии за координирането им. Java EE също поддържа някои спецификации, присъщи единствено за компонентите на Java EE. Те включват Enterprise JavaBeans, connectors, servlets, JavaServer Pages и други технологии за Web услуги. Това позволява на разработчиците на софтуер да създават корпоративни приложения(enterprise applications), които са преносими и мащабируеми и се интегрират с утвърдени технологии. Сървърът за апликации на Java EE предлага трансакции, сигурност, едновременност и управление на компонентите, които обслужва, за да позволи на разработчиците да се концентрират върху бизнес логиката на компонентите.
Основни интерфейси (APIs) Java EE APIs включва няколко технологии, които разширяват функционалността на базата на Java SE APIs. Java EE 7 Platform Packages Java EE 6 Platform Packages Java EE 5 Platform Packages
javax.servlet.* Спецификацията на servlet определя набор от интерфейси, които обслужват главно HTTP заявки. Тя включва JavaServer Pages (JSP) спецификацияjavax.servlet.*.
javax.websocket.* Интерфейсът за спецификация WebSocket определя набор от интерфейси, които обслужват WebSocket връзкиjavax.websocket.*.
javax.faces.* Този пакет дефинира основата на JavaServer Faces (JSF) API. Java Server Faces е технология за изграждане на потребителски интерфейси от компонентиjavax.faces.*.
javax.faces.component.* Този пакет определя компонентната част на Java Server Faces API. Тъй като Java Server Faces е предимно компонентно ориентирана технология, това е един от основните ѝ пакети. Прегледът на пакет съдържа UML диаграма на йерархията на компонентитеjavax.faces.component.*.
javax.el.* Този пакет определя класовете и интерфейсите за Java EE Expression Language. Expression Language (EL) е език, първоначално проектиран да отговаря на специфичните нужди на разработчиците на уеб приложения. Той се използва специално в Java Server Faces да се свързват компоненти c бийнове и да именуваме бийнове в CDI, но може да се използва по време на цялата платформаjavax.el.*.
javax.enterprise.inject.* Тези пакети определят анотациите за вкарване на Contexts and Dependency Injection (CDI) APIsjavax.enterprise.inject.*.
javax.enterprise.context.* Тези пакети определят контекстните анотации и интерфейси за Contexts and Dependency Injection (CDI) APIjavax.enterprise.context.* .
javax.ejb.* Спецификацията Enterprise JavaBean (EJB) определя набор от леки APIs, поддържани от обектния контейнер (EJB container) за да се изпълняват финансови операции (с помощта на JTA), отдалечено извикване на процедури (използвайки RMI и RMI-IIOP), контрол за едновременност, вмъкване на зависимости (dependency injection) и контрол на достъп за бизнес обекти. Този пакет съдържа класовете Enterprise JavaBeans и интерфейсите, които определят договорите между предприятието и неговите клиенти и между предприятието и контейнер EJBjavax.ejb.*.
javax.validation.* Този пакет съдържа анотациите и интерфейси за поддръжка на декларативно валидиране, предлагани от Bean Validation API. Bean Validation осигурява единен начин за осигуряване на ограничения върху Bean класове (например JPA model classes), които могат да се прилагат с Cross-layer оптимизация. В Java EE, JPA спазва Bean Validation ограниченията в слоя Persistence, докато JSF го прави в слоя Viewjavax.validation.*.
javax.persistence.* Този пакет съдържа договорите между persistence доставчик и управляваните класове и клиентите на Java Persistence (JPA) APIjavax.persistence.*.
javax.transaction.* Този пакет предлага Java Transaction API (JTA), който съдържа интерфейсите и анотациите, които си взаимодействат с поддръжката за финасови операции, предлагана от Java EE. Въпреки че това API се абстрахира от детайлите на наистина ниско ниво, интерфейсите, също се считат донякъде на ниско ниво и се предполага, че обикновения Java EE разработчик на приложения или разчита на прозрачна обработка на финансови операции от по-високо ниво EJB абстракции, или използва анотациите, предоставени от това API в комбинация с CDI, управлявани beans класовеjavax.transaction.*.
javax.security.auth.message.* Този пакет предлага ядрото на Java Authentication SPI (JASPIC), който съдържа интерфейсите и класовете за изграждане на модули за заверка за сигурни Java EE приложения. Authentication модули са отговорни за взаимодействието с потребителя (например пренасочване към форма или към доставчик на OpenID), проверка на входа на потребителя (например чрез LDAP търсене, заявка към база данни) и извличане на набор от групи / роли, в които заверения потребител участва или има (например като отново извършим LDAP търсене или заявка към база данни)javax.security.auth.message.*.
javax.enterprise.concurrent.* Този пакет предлага интерфейси за взаимодействие директно с управляваните по подразбиране нишки на Java EE платформата. Обслужване от изпълнител от по-високо ниво работещ на същата нишка, може да се използва по избор. Същите интерфейси могат да бъдат използвани за потребителски дефинирани управлявани нишки, но това зависи от специфичната конфигурация на продавача и не се покрива от спецификацията на Java EEjavax.enterprise.concurrent.*.
javax.jms.* Този пакет определя Java Message Service (JMS) API. За програмите на Java API JMS осигурява общ начин за създаване, изпращане, получаване и четене на съобщения от системата за съобщения на предприятиетоjavax.jms.*.
javax.batch.api.* Този пакет определя входното API за Java EE Batch приложения. Batch Applications API предвижда средства за изпълнение на продължително изпълняващи се фонови задачи, които вероятно са свързани с голям обем от данни, и които може да се наложи да бъдат периодично изпълняваниjavax.batch.api.*.
javax.resource.* Този пакет дефинира Java EE Connector Architecture (JCA) API. Java EE Connector Architecture (JCA) е Java-базирано технологично решение за свързване на сървъри за приложения и ентърпрайз информационни системи (EIS), като част от корпоративни решения за интегриране на приложения (EAI). Това е API за ниско равнище, насочен към доставчици, с които разработчиците обикновено нямат пряк контактjavax.resource.*.
Уеб профили В опит да се ограничи отпечатъка на уеб контейнерите и във физическо, и в концептуално отношение, уеб профилът е създаден като подразделение на спецификациите на Java EE. Уеб профилът на Java EE съдържа следните спецификации: СпецификацииJava EE 6jcp.orgJava EE 7jcp.orgСървлет (Servlet)3.03.1JavaServer Страници(JSP)2.22.3Обединен език за изразяване(EL)2.23.0Поддръжка на отстраняване на грешки за други езици(JSR-45)1.01.0Стандартен библиотечен таг за JavaServer Страници(JSTL)1.21.2JavaServer Faces(JSF)2.02.2Java API за RESTful Уеб Услуги(JAX-RS)1.12.0Java API за WebSocket(Websocket)няма данни1.0Java API за JSON обработка(JSON-P)няма данни1.0Общи анотации за Java платформата(JSR-250)1.11.2Enterprise JavaBeans(EJB)3.1 Lite3.2 LiteJava трансакционно API(JTA)1.11.2Java Persistence API(JPA)2.02.1Bean валидиране1.01.1Управляеми Beans1.01.0Прехващачи(Interceptors)1.11.2Контекст и зависимо вмъкване за Java EE платформа1.01.1Зависимо вмъкване за Java1.0
Сертифицирани сървъри на приложенията Приложения за сървъриJava EE 7 сертифициранJava EE 7 сертифициран УебJava EE 6 сертифициранJava EE 6 Уеб сертифициранJava EE 5 сертифициранJ2EE 1.4 сертифициранЛицензGlassFish сървър с открит кодДа v4.0www.oracle.comДа v4.0www.oracle.comДа v3.x и нагореДа v3.xДа v2.1.xбезплатен софтуерOracle GlassFish СървърДа v3Да v9.0Да v8.2патентован софтуерOracle WebLogic СървърДа v12.2.1www.oracle.comblogs.oracle.comdocs.oracle.comДа v12cДа v10.3.5.0Да v9.0патентован софтуерWildFlyДа v8.0.0 Finallists.jboss.orgissues.jboss.orgДа v8.0.0 FinalДа v7.1planet.jboss.orgДа v7.0 и v6.0jbossas.jboss.orgДа v5.1Java EE Compatibility Да v4.xбезплатен софтуерJBOSS enterprise платформа за приложенияДа v6.0Business Wire (2012-06-20). „Red Hat Launches JBoss Enterprise Application Platform 6 to Help Enterprises Move Application Development and Deployment to the Cloud“. Business Wire. Посетен на 18 юли 2012.Да v5безплатен софтуерIBM WebSphere сървър на приложенияДа v8„What's new in WebSphere Application Server V8“ Ibm.com. Посетен на 18 юли 2012.Да v7Дапатентован софтуерIBM WebSphere Application Server LibertyДа v8.5.5.6Да v8.5.5www.oracle.comпатентован софтуерIBM WebSphere Application Server Свободна версияДа v3Да v2.1патентован софтуерApache GeronimoДа v3.0-бетаДа v2.0Да v1.0безплатен софтуерTmaxSoft JEUSДа v8.0blogs.oracle.comwww.oracle.comДа v7„Java EE6 Web Application Server, WAS Software“ . Us.tmaxsoft.com. Посетен на 18 юли 2012.„Tested Configurations, Java EE 6 – TMAX JEUS 7“. Oracle.com. 7 септември 2010. Посетен на 18 юли 2012.Да v6.0Да v5патентован софтуерHitachi Сървърно приложениеДа v10.0blogs.oracle.comoracle.comДа v9„Java EE 6 – Tested Configurations, Java EE 6 – Hitachi uCosminexus Application Server v9.0“. Oracle.com.патентован софтуерFujitsu Interstage сървър на приложенияДа v1 Azure„Tested Configurations, Java EE6 – Fujitsu Interstage“. Oracle.com. 7 септември 2010. Посетен на 18 юли 2012.Дапатентован софтуерNEC webOTXДаwww.oracle.comДапатентован софтуерCaucho Resin СървърДа v4.0www.caucho.comДапатентован софтуерApache TomEE„MarketWatch.com“. MarketWatch.com. Посетен на 18 юли 2012.„Apache TomEE“ . Openejb.apache.org. Посетен на 18 юли 2012.Дабезплатен софтуерOW2 SilpasДа v6.0„Please Welcome Siwpas as Java EE Certified Option!“. Oracle.com. Посетен на 7 декември 2015.безплатен софтуерOW2 JOnASДа v5.3ДаДабезплатен софтуерSAP NetWeaverДа v2.xblogs.oracle.comДаДапатентован софтуерOracle containers for Java EEДапатентован софтуерOracle iPlanet Уеб сървърДапатентован софтуерOracle сървър на приложенияДапатентован софтуерPramati сървърДа v5.0патентован софтуерTrifork T4Дапатентован софтуерSybaseEAServer сървър на приложенияДапатентован софтуер
Примерен код Примерният код по-долу показва как различни технологии в Java EE 7 се използват заедно, за да се създаде уеб форма за редактиране на даден потребител.