Enterprises today need to extend their reach, reduce their costs, and lower the response times of their services to customers, employees, and suppliers. Typically, applications that provide these services must combine existing enterprise information systems (EISs) with new business functions that deliver services to a broad range of users. The services need to be:
• Highly available, to meet the needs of today’s global business environment.
• Secure, to protect the privacy of users and the integrity of the enterprise.
• Reliable and scalable, to ensure that business transactions are accurately and promptly processed.
In most cases, enterprise services are implemented as multitier applications. The middle tiers integrate existing EISs with the business functions and data of the new service. Maturing web technologies are used to provide first tier users with easy access to business complexities, and eliminate or drastically reduce user administration and training.
The Java™ Platform, Enterprise Edition (Java™ EE) reduces the cost and complexity of developing multitier, enterprise services. Java EE applications can be rapidly deployed and easily enhanced as the enterprise responds to competitive pressures.
Java EE achieves these benefits by defining a standard architecture with the following elements:
• Java EE Platform - A standard platform for hosting Java EE applications.
• Java EE Compatibility Test Suite - A suite of compatibility tests for verifying that a Java EE platform product complies with the Java EE platform standard.
• Java EE Reference Implementation - A reference implementation for prototyping Java EE applications and for providing an operational definition of the Java EE platform.
This document is the Java EE platform specification. It sets out the requirements that a Java EE platform product must meet.
Author(s): Linda DeMichiel, Bill Shannon (Oracle).
Series: Java EE 8, Final Release (Aug 2017).
Publisher: Oracle
Year: 2019
Language: English
Pages: 296
Java™ Platform, Enterprise Edition (Java EE) Specification, v8......Page 1
Introduction......Page 17
EE.1.3 Acknowledgements for Version 1.4......Page 18
EE.1.4 Acknowledgements for Version 5......Page 19
EE.1.6 Acknowledgements for Version 7......Page 20
EE.1.7 Acknowledgements for Version 8......Page 21
EE.2.1 Architecture......Page 23
EE.2.2 Profiles......Page 24
EE.2.3 Application Components......Page 26
EE.2.4 Containers......Page 27
EE.2.5 Resource Adapters......Page 28
EE.2.7.3 Java™ Transaction API (JTA)......Page 29
EE.2.7.5 Java IDL (Proposed Optional)......Page 30
EE.2.7.9 Java Naming and Directory Interface™ (JNDI)......Page 31
EE.2.7.13 Java EE™ Connector Architecture......Page 32
EE.2.7.14 Security Services......Page 33
EE.2.7.16 Concurrency Utilities......Page 34
EE.2.8 Interoperability......Page 35
EE.2.9 Flexibility of Product Requirements......Page 36
EE.2.10 Java EE Product Packaging......Page 37
EE.2.12 Platform Roles......Page 38
EE.2.12.3 Application Assembler......Page 39
EE.2.12.5 System Administrator......Page 40
EE.2.13.1 Java EE APIs......Page 41
EE.2.13.4 Deployment Descriptors and Annotations......Page 42
EE.2.15 Changes in J2EE 1.4......Page 43
EE.2.16 Changes in Java EE 5......Page 44
EE.2.18 Changes in Java EE 7......Page 45
EE.2.19 Changes in Java EE 8......Page 46
EE.3.1 Introduction......Page 49
EE.3.2 A Simple Example......Page 50
EE.3.3.1 Goals......Page 53
EE.3.3.3 Terminology......Page 54
EE.3.3.4 Container Based Security......Page 55
EE.3.3.4.2 Programmatic Security......Page 56
EE.3.3.6 Authorization Model......Page 57
EE.3.3.6.1 Role Mapping......Page 58
EE.3.3.8.1 Authentication by Web Clients......Page 59
EE.3.3.8.2 Web Single Signon......Page 60
EE.3.3.9 Lazy Authentication......Page 61
EE.3.4.2.1 HTTP Basic Authentication......Page 62
EE.3.4.2.2 SSL Mutual Authentication......Page 63
EE.3.4.3 Unauthenticated Users......Page 64
EE.3.4.4 Application Client User Authentication......Page 65
EE.3.4.5 Resource Authentication Requirements......Page 66
EE.3.5.2 Caller Authorization......Page 67
EE.3.6 Deployment Requirements......Page 68
EE.3.7.1 Auditing......Page 69
EE.3.7.3 User Registration......Page 70
EE.4.1 Overview......Page 71
EE.4.2.1.1 Transaction Requirements......Page 73
EE.4.2.2 Transactions in Web Component Life Cycles......Page 74
EE.4.2.3 Transactions and Threads......Page 75
EE.4.2.7 Transactional JDBC™ Technology Support......Page 76
EE.4.3.1 Multiple Java EE Platform Interoperability......Page 77
EE.4.4.2 A Possible Design......Page 78
EE.4.5 Connection Sharing......Page 79
EE.4.6 JDBC and JMS Deployment Issues......Page 80
EE.4.8 System Administration Tools......Page 81
EE.5.1 Overview......Page 83
EE.5.1.1 Chapter Organization......Page 84
EE.5.1.2 Required Access to the JNDI Naming Environment......Page 86
EE.5.2.1 The Application Component’s Environment......Page 87
EE.5.2.2 Application Component Environment Namespaces......Page 88
EE.5.2.4 Sharing of Environment Entries......Page 90
EE.5.2.5 Annotations and Injection......Page 91
EE.5.2.6 Annotations and Deployment Descriptors......Page 95
EE.5.3 Responsibilities by Java EE Role......Page 96
EE.5.3.3 Deployer’s Responsibilities......Page 97
EE.5.3.4 Java EE Product Provider’s Responsibilities......Page 98
EE.5.4.1.1 Injection of Simple Environment Entries......Page 99
EE.5.4.1.2 Programming Interfaces for Accessing Simple Environment Entries......Page 100
EE.5.4.1.3 Declaration of Simple Environment Entries......Page 101
EE.5.5.1.1 Injection of EJB Entries......Page 105
EE.5.5.1.2 Programming Interfaces for EJB References......Page 107
EE.5.5.1.3 Declaration of EJB References......Page 108
EE.5.5.2 Application Assembler’s Responsibilities......Page 110
EE.5.5.3 Deployer’s Responsibilities......Page 112
EE.5.5.4 Java EE Product Provider’s Responsibilities......Page 113
EE.5.7.1 Application Component Provider’s Responsibilities......Page 114
EE.5.7.1.1 Injection of Resource Manager Connection Factory References......Page 115
EE.5.7.1.2 Programming Interfaces for Resource Manager Connection Factory References......Page 116
EE.5.7.1.3 Declaration of Resource Manager Connection Factory References in Deployment Descriptor......Page 118
EE.5.7.1.4 Standard Resource Manager Connection Factory Types......Page 119
EE.5.7.2 Deployer’s Responsibilities......Page 120
EE.5.7.3 Java EE Product Provider’s Responsibilities......Page 121
EE.5.8.1 Application Component Provider’s Responsibilities......Page 122
EE.5.8.1.3 Declaration of Resource Environment References in Deployment Descriptor......Page 123
EE.5.8.2 Deployer’s Responsibilities......Page 124
EE.5.9.1.1 Injection of Message Destination References......Page 125
EE.5.9.1.2 Message Destination Reference Programming Interfaces......Page 126
EE.5.9.1.3 Declaration of Message Destination References in Deployment Descriptor......Page 127
EE.5.9.2 Application Assembler’s Responsibilities......Page 128
EE.5.10 UserTransaction References......Page 130
EE.5.11 TransactionSynchronizationRegistry References......Page 132
EE.5.12 ORB References......Page 133
EE.5.12.2 Java EE Product Provider’s Responsibilities......Page 134
EE.5.13.1.1 Injection of Persistence Unit References......Page 135
EE.5.13.1.2 Programming Interfaces for Persistence Unit References......Page 136
EE.5.13.1.3 Declaration of Persistence Unit References in Deployment Descriptor......Page 137
EE.5.13.2 Application Assembler’s Responsibilities......Page 138
EE.5.13.5 System Administrator’s Responsibility......Page 139
EE.5.14.1.1 Injection of Persistence Context References......Page 140
EE.5.14.1.2 Programming Interfaces for Persistence Context References......Page 141
EE.5.14.1.3 Declaration of Persistence Context References in Deployment Descriptor......Page 142
EE.5.14.2 Application Assembler’s Responsibilities......Page 143
EE.5.14.3 Deployer’s Responsibility......Page 144
EE.5.15 Application Name and Module Name References......Page 145
EE.5.17 Validator and Validator Factory References......Page 146
EE.5.17.1 Application Component Provider’s Responsibilities......Page 147
EE.5.18 Resource Definition and Configuration......Page 148
EE.5.18.2.2 Resource Address......Page 150
EE.5.18.3 DataSource Resource Definition......Page 151
EE.5.18.3.2 Deployer’s Responsibilities......Page 153
EE.5.18.4 JMS Connection Factory Resource Definition......Page 154
EE.5.18.5 JMS Destination Definition......Page 156
EE.5.18.6 Mail Session Definition......Page 158
EE.5.18.6.1 Application Component Provider’s Responsibilities......Page 159
EE.5.18.7 Connector Connection Factory Definition......Page 160
EE.5.18.7.2 Deployer’s Responsibilities......Page 161
EE.5.18.8 Connector Administered Object Definition......Page 162
EE.5.19 Default Data Source......Page 163
EE.5.20 Default JMS Connection Factory......Page 164
EE.5.21 Default Concurrency Utilities Objects......Page 165
EE.5.21.1 Java EE Product Provider's Responsibilities......Page 166
EE.5.22 Managed Bean References......Page 167
EE.5.23 Bean Manager References......Page 168
EE.5.24 Support for Dependency Injection......Page 169
EE.6.1.1 Java Compatible APIs......Page 173
EE.6.1.2 Required Java Technologies......Page 174
EE.6.2.1 Programming Restrictions......Page 177
EE.6.2.2.1 Java EE Product Provider’s Responsibilities......Page 178
EE.6.2.2.2 Application Component Provider’s Responsibilities......Page 179
EE.6.2.2.4 Listing of the Java EE Security Permissions Set......Page 180
EE.6.2.2.5 Restrictable Java EE Security Permissions......Page 181
EE.6.2.2.6 Declaring Permissions Required by Application Components......Page 183
EE.6.2.3.1 Networking......Page 184
EE.6.2.3.2 JDBC™ API......Page 185
EE.6.2.3.4 Java IDL (Proposed Optional)......Page 187
EE.6.2.3.5 RMI-JRMP......Page 188
EE.6.2.3.6 RMI-IIOP (Proposed Optional)......Page 189
EE.6.2.3.7 JNDI......Page 190
EE.6.2.3.10 Logging API Requirements......Page 192
EE.6.3 Enterprise JavaBeans™ (EJB) 3.2 Requirements......Page 193
EE.6.4 Servlet 4.0 Requirements......Page 194
EE.6.7 Java™ Message Service (JMS) 2.0 Requirements......Page 195
EE.6.8 Java™ Transaction API (JTA) 1.2 Requirements......Page 197
EE.6.9 JavaMail™ 1.6 Requirements......Page 198
EE.6.10 Java EE™ Connector Architecture 1.7 Requirements......Page 199
EE.6.13 Java™ API for RESTful Web Services (JAX-RS) 2.1 Requirements......Page 200
EE.6.16 Java API for JSON Binding 1.0 (JSON-B) Requirements......Page 201
EE.6.19 Java™ API for XML Registries (JAXR) 1.0 Requirements (Optional)......Page 202
EE.6.22 Java™ Authorization Contract for Containers (JACC) 1.5 Requirements......Page 203
EE.6.25 Debugging Support for Other Languages (JSR-45) Requirements......Page 204
EE.6.28 JavaServer Faces™ 2.3 Requirements......Page 205
EE.6.29 Common Annotations for the Java™ Platform 1.3 Requirements......Page 206
EE.6.32 Managed Beans 1.0 Requirements......Page 207
EE.6.35 Dependency Injection for Java 1.0 Requirements......Page 208
EE.7.1 Introduction to Interoperability......Page 209
EE.7.2.1 Internet and Web Protocols......Page 210
EE.7.2.2 OMG Protocols (Proposed Optional)......Page 211
EE.7.2.4 Data Formats......Page 212
Application Assembly and Deployment......Page 215
EE.8.1 Application Development Life Cycle......Page 216
EE.8.1.1 Component Creation......Page 217
EE.8.1.2 Application Assembly......Page 219
EE.8.1.3 Deployment......Page 220
EE.8.2.1 Bundled Libraries......Page 221
EE.8.2.2 Installed Libraries......Page 222
EE.8.2.4 Library Resources......Page 223
EE.8.2.5 Dynamic Class Loading......Page 224
EE.8.2.6 Examples......Page 225
EE.8.3 Class Loading Requirements......Page 226
EE.8.3.1 Web Container Class Loading Requirements......Page 227
EE.8.3.2 EJB Container Class Loading Requirements......Page 228
EE.8.3.3 Application Client Container Class Loading Requirements......Page 230
EE.8.4.1 Assembling a Java EE Application......Page 231
EE.8.4.2 Adding and Removing Modules......Page 234
EE.8.5 Deployment......Page 235
EE.8.5.1 Deploying a Stand-Alone Java EE Module......Page 237
EE.8.5.2 Deploying a Java EE Application......Page 239
EE.8.5.4 Module Initialization......Page 241
EE.8.6 Java EE Application XML Schema......Page 242
EE.8.7 Common Java EE XML Schema Definitions......Page 245
EE.9.1 Introduction......Page 247
EE.9.3 General Rules for Profiles......Page 248
EE.9.5 Requirements for All Java EE Profiles......Page 249
EE.9.7 Full Java EE Product Requirements......Page 250
EE.10.2 Security......Page 253
EE.10.3 Transactions......Page 254
EE.10.6 Packaging and Deployment......Page 255
EE.10.7 Java EE Application Client XML Schema......Page 258
EE.11.2 Java™ Authorization Service Provider Contract for Containers......Page 261
EE.11.5 JavaMail™......Page 262
EE.12.1 Compatibility......Page 263
EE.12.2.2 JAX-WS......Page 264
EE.13.1 Java EE SPI......Page 265
EE.A.1 Java EE 7 Application XML Schema......Page 267
EE.A.3 Java EE 7 Application Client XML Schema......Page 271
EE.A.4 Java EE 6 Application XML Schema......Page 274
EE.A.6 Java EE 6 Application Client XML Schema......Page 277
EE.A.7 Java EE 5 Application XML Schema......Page 279
EE.A.9 Java EE 5 Application Client XML Schema......Page 280
EE.A.10 J2EE 1.4 Application XML Schema......Page 282
EE.A.12 J2EE:application 1.3 XML DTD......Page 283
EE.A.14 J2EE 1.4 Application Client XML Schema......Page 284
EE.A.15 J2EE:application-client 1.3 XML DTD......Page 287
EE.A.16 J2EE:application-client 1.2 XML DTD......Page 288
EE.B.2.1 Additional Requirements......Page 289
EE.B.3.2 Editorial Changes......Page 290
EE.B.5.2 Editorial Changes......Page 291
Related Documents......Page 293