Изучаем Java EE 7 - [12]

Шрифт
Интервал

• Компоненты-сущности EJB 2.xCMP (входили в запрос на спецификацию JSR 318). Сложная и тяжеловесная модель персистентности, состоящая из компонентов-сущностей EJB2.х, была заменена интерфейсом JPA.

• Интерфейс JAX-RPC (запрос на спецификацию JSR 101). Это была первая попытка моделирования веб-служб SOAP в качестве вызовов удаленных процедур (RPC). Ему на замену пришел гораздо более простой в использовании и надежный интерфейс JAX-WS.

• Интерфейс JAXR (запрос на спецификацию JSR 93). JAXR — интерфейс, посвященный обмену данными с реестрами стандарта UDDI. Поскольку этот стандарт недостаточно широко используется, интерфейс JAXR исключен из Java EE и развивается в рамках отдельного запроса JSR.

• Развертывание приложений Java EE (запрос JSR 88). JSR 88 — спецификация, которую разработчики инструментов могут использовать для развертывания на серверах приложений. Этот интерфейс не получил большой поддержки разработчиков, поэтому он также исключается из Java EE 7 и будет развиваться в рамках отдельной спецификации.

Спецификации Java EE 7

Спецификация Java EE 7 определяется запросом JSR 342 и объединяет в себе 31 спецификацию. Сервер приложений, призванный обеспечить совместимость с Java EE 7, должен реализовывать все эти спецификации. Они перечислены в табл. 1.2–1.6, где сгруппированы по технологическим предметным областям, с указанием версии и номера запроса JSR.


Таблица 1.2. Спецификация Java Enterprise Edition
СпецификацияВерсияJSRURL
Java EE7.0342http://jcp.org/en/jsr/detail?id=342
Web Profile (Веб-профиль)7.0342http://jcp.org/en/jsr/detail?id=342
Managed Beans (Управляемые компоненты)1.0316http://jcp.org/en/jsr/detail?id=316

В области веб-служб (см. табл. 1.3) службы SOAP не дорабатывались, так как никакие спецификации не обновлялись (см. главу 14).

Веб-службы REST в последнее время активно использовались в наиболее важных веб-приложениях. Интерфейс JAX-RS 2.0 также подвергся крупному обновлению, в частности, в нем появился клиентский API (см. главу 15). Новая спецификация обработки объектных нотаций JavaScript (JSON-P) эквивалентна интерфейсу Java для обработки XML (JAXP), только вместо XML используется JSON (см. главу 12).


Таблица 1.3. Спецификация веб-служб
СпецификацияВерсияJSRURL
JAX-WS2.2a224http://jcp.org/en/jsr/detail?id=224
JAXB2.2222http://jcp.org/en/jsr/detail?id=222
Web Services (Веб-службы)1.3109http://jcp.org/en/jsr/detail?id=109
Web Services Metadata (Метаданные веб-служб)2.1181http://jcp.org/en/jsr/detail?id=181
JAX-RS2.0339http://jcp.org/en/jsr/detail?id=339
JSON-P1.0353http://jcp.org/en/jsr/detail?id=353

В веб-спецификациях (см. табл. 1.4) не вносилось никаких изменений в страницы JSP и библиотеки тегов JSTL, поскольку эти спецификации не обновлялись. Из JSP-страниц был выделен язык выражений, который сейчас развивается в рамках отдельного запроса на спецификацию (JSR 341). Сервлет и фреймворк JSF (см. главы 10 и 11) были обновлены. Кроме того, в Java EE 7 был представлен новейший интерфейс WebSocket 1.0.


Таблица 1.4. Веб-спецификации
СпецификацияВерсияJSRURL
JSF2.2344http://jcp.org/en/jsr/detail?id=344
JSP2.3245http://jcp.org/en/jsr/detail?id=245
Debugging Support for Other Languages (Поддержка отладки для других языков)1.045http://jcp.org/en/jsr/detail?id=45
JSTL[1]1.252http://jcp.org/en/jsr/detail?id=52
Servlet (Сервлет)3.1340http://jcp.org/en/jsr/detail?id=340
WebSocket (Веб-сокет)1.0356http://jcp.org/en/jsr/detail?id=356
Expression Language (Язык выражений)3.0341http://jcp.org/en/jsr/detail?id=341

В области корпоративных приложений (см. табл. 1.5) выполнено два основных обновления: JMS 2.0 (см. главу 13) и интерфейс JTA 1.2 (см. главу 9), до этого не обновлявшиеся более десяти лет. В свою очередь, спецификации по компонентам EJB (см. главы 7 и 8), интерфейсу JPA (см. главы 4–6) и перехватчикам (см. главу 2) перешли в эту версию с минимальными обновлениями.


Таблица 1.5. Корпоративные спецификации
СпецификацияВерсияJSRURL
EJB3.2345http://jcp.org/en/jsr/detail?id=345
Interceptors (Перехватчики)1.2318http://jcp.org/en/jsr/detail?id=318
JavaMail1.5919http://jcp.org/en/jsr/detail?id=919
JCA1.7322http://jcp.org/en/jsr/detail?id=322
JMS2.0343http://jcp.org/en/jsr/detail?id=343
JPA2.1338http://jcp.org/en/jsr/detail?id=338
JTA1.2907http://jcp.org/en/jsr/detail?id=907

Java EE 7 включает несколько других спецификаций (см. табл. 1.6), например новый функционал пакетной обработки (запрос JSR 352) и утилиты параллельного доступа для Java EE (запрос JSR 236). Среди других обновлений стоит отметить валидацию компонентов версии 1.1 (см. главу 3), контекст и внедрение зависимостей CDI 1.1 (см. главу 2) и интерфейс JMS 2.0 (см. главу 13).


Таблица 1.6. Управление, безопасность и другие спецификации
СпецификацияВерсияJSRURL
JACC1.4115http://jcp.org/en/jsr/detail?id=115
Bean Validation (Валидация компонентов)1.1349http://jcp.org/en/jsr/detail?id=349
Contexts and Dependency Injection (Контексты и внедрение зависимости)1.1346http://jcp.org/en/jsr/detail?id=346
Dependency Injection for Java (Внедрение зависимости для Java)1.0330http://jcp.org/en/jsr/detail?id=330

Рекомендуем почитать
Pro Git

Разработчику часто требуется много сторонних инструментов, чтобы создавать и поддерживать проект. Система Git — один из таких инструментов и используется для контроля промежуточных версий вашего приложения, позволяя вам исправлять ошибки, откатывать к старой версии, разрабатывать проект в команде и сливать его потом. В книге вы узнаете об основах работы с Git: установка, ключевые команды, gitHub и многое другое.В книге рассматриваются следующие темы:основы Git;ветвление в Git;Git на сервере;распределённый Git;GitHub;инструменты Git;настройка Git;Git и другие системы контроля версий.


Java 7

Рассмотрено все необходимое для разработки, компиляции, отладки и запуска приложений Java. Изложены практические приемы использования как традиционных, так и новейших конструкций объектно-ориентированного языка Java, графической библиотеки классов Swing, расширенной библиотеки Java 2D, работа со звуком, печать, способы русификации программ. Приведено полное описание нововведений Java SE 7: двоичная запись чисел, строковые варианты разветвлений, "ромбовидный оператор", NIO2, новые средства многопоточности и др.


MFC и OpenGL

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Симуляция частичной специализации

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Обработка событий в С++

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Питон — модули, пакеты, классы, экземпляры

Python - объектно-ориентированный язык сверхвысокого уровня. Python, в отличии от Java, не требует исключительно объектной ориентированности, но классы в Python так просто изучить и так удобно использовать, что даже новые и неискушенные пользователи быстро переходят на ОО-подход.