EJB 3.0 Expert Group
Specification Lead:
Linda DeMichiel, Sun Microsystems
Michael Keith, Oracle Corporation
Please send comments to: ejb3-spec-feedback@sun.com
Final Release
Sun Microsystems
JSR 220: Enterprise JavaBeans
TM
,Version 3.0
EJB Core Contracts and Requirements
microsystems
May 2, 200
6
Version 3.0, Final Release
Enterprise JavaBeans 3.0, Final Release Sun Microsystems, Inc.
2 5/2/06
Specification: JSR-000220 Enterprise JavaBeans v.3.0 ("Specification")
Version: 3.0
Status: Final Release
Release: 8 May 2006
Copyright 2006 SUN MICROSYSTEMS, INC.
4150 Network Circle, Santa Clara, California 95054, U.S.A
All rights reserved.
LIMITED LICENSE GRANTS
1. _License for Evaluation Purposes_. Sun hereby grants you a fully-paid, non-exclusive, non-transfer-
able, worldwide, limited license (without the right to sublicense), under Sun’s applicable intellectual
property rights to view, download, use and reproduce the Specification only for the purpose of internal
evaluation. This includes (i) developing applications intended to run on an implementation of the Spec-
ification, provided that such applications do not themselves implement any portion(s) of the Specifica-
tion, and (ii) discussing the Specification with any third party; and (iii) excerpting brief portions of the
Specification in oral or written communications which discuss the Specification provided that such ex-
cerpts do not in the aggregate constitute a significant portion of the Specification.
2. _License for the Distribution of Compliant Implementations_. Sun also grants you a perpetual, non-
exclusive, non-transferable, worldwide, fully paid-up, royalty free, limited license (without the right to
sublicense) under any applicable copyrights or, subject to the provisions of subsection 4 below, patent
rights it may have covering the Specification to create and/or distribute an Independent Implementation
of the Specification that: (a) fully implements the Specification including all its required interfaces and
functionality; (b) does not modify, subset, superset or otherwise extend the Licensor Name Space, or in-
clude any public or protected packages, classes, Java interfaces, fields or methods within the Licensor
Name Space other than those required/authorized by the Specification or Specifications being imple-
mented; and (c) passes the Technology Compatibility Kit (including satisfying the requirements of the
applicable TCK Users Guide) for such Specification ("Compliant Implementation"). In addition, the
foregoing license is expressly conditioned on your not acting outside its scope. No license is granted
hereunder for any other purpose (including, for example, modifying the Specification, other than to the
extent of your fair use rights, or distributing the Specification to third parties). Also, no right, title, or
interest in or to any trademarks, service marks, or trade names of Sun or Sun’s licensors is granted here-
under. Java, and Java-related logos, marks and names are trademarks or registered trademarks of Sun Mi-
crosystems, Inc. in the U.S. and other countries.
3. _Pass-through Conditions_. You need not include limitations (a)-(c) from the previous paragraph or
any other particular "pass through" requirements in any license You grant concerning the use of your In-
dependent Implementation or products derived from it. However, except with respect to Independent Im-
plementations (and products derived from them) that satisfy limitations (a)-(c) from the previous
paragraph, You may neither: (a) grant or otherwise pass through to your licensees any licenses under
Sun’s applicable intellectual property rights; nor (b) authorize your licensees to make any claims con-
cerning their implementation’s compliance with the Specification in question.
4. _Reciprocity Concerning Patent Licenses_.
a. With respect to any patent claims covered by the license granted under subparagraph 2 above that
would be infringed by all technically feasible implementations of the Specification, such license is con-
ditioned upon your offering on fair, reasonable and non-discriminatory terms, to any party seeking it
from You, a perpetual, non-exclusive, non-transferable, worldwide license under Your patent rights
Enterprise JavaBeans 3.0, Final Release Sun Microsystems, Inc.
3 5/2/06
which are or would be infringed by all technically feasible implementations of the Specification to de-
velop, distribute and use a Compliant Implementation.
b With respect to any patent claims owned by Sun and covered by the license granted under subparagraph
2, whether or not their infringement can be avoided in a technically feasible manner when implementing
the Specification, such license shall terminate with respect to such claims if You initiate a claim against
Sun that it has, in the course of performing its responsibilities as the Specification Lead, induced any oth-
er entity to infringe Your patent rights.
c Also with respect to any patent claims owned by Sun and covered by the license granted under sub-
paragraph 2 above, where the infringement of such claims can be avoided in a technically feasible man-
ner when implementing the Specification such license, with respect to such claims, shall terminate if You
initiate a claim against Sun that its making, having made, using, offering to sell, selling or importing a
Compliant Implementation infringes Your patent rights.
5. _Definitions_. For the purposes of this Agreement: "Independent Implementation" shall mean an im-
plementation of the Specification that neither derives from any of Sun’s source code or binary code ma-
terials nor, except with an appropriate and separate license from Sun, includes any of Sun’s source code
or binary code materials; "Licensor Name Space" shall mean the public class or interface declarations
whose names begin with "java", "javax", "com.sun" or their equivalents in any subsequent naming con-
vention adopted by Sun through the Java Community Process, or any recognized successors or replace-
ments thereof; and "Technology Compatibility Kit" or "TCK" shall mean the test suite and
accompanying TCK User’s Guide provided by Sun which corresponds to the Specification and that was
available either (i) from Sun 120 days before the first release of Your Independent Implementation that
allows its use for commercial purposes, or (ii) more recently than 120 days from such release but against
which You elect to test Your implementation of the Specification.
This Agreement will terminate immediately without notice from Sun if you breach the Agreement or act
outside the scope of the licenses granted above.
DISCLAIMER OF WARRANTIES
THE SPECIFICATION IS PROVIDED "AS IS". SUN MAKES NO REPRESENTATIONS OR WAR-
RANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO, WARRAN-
TIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-
INFRINGEMENT (INCLUDING AS A CONSEQUENCE OF ANY PRACTICE OR IMPLEMENTA-
TION OF THE SPECIFICATION), OR THAT THE CONTENTS OF THE SPECIFICATION ARE
SUITABLE FOR ANY PURPOSE. This document does not represent any commitment to release or im-
plement any portion of the Specification in any product. In addition, the Specification could include tech-
nical inaccuracies or typographical errors.
LIMITATION OF LIABILITY
TO THE EXTENT NOT PROHIBITED BY LAW, IN NO EVENT WILL SUN OR ITS LICENSORS
BE LIABLE FOR ANY DAMAGES, INCLUDING WITHOUT LIMITATION, LOST REVENUE,
PROFITS OR DATA, OR FOR SPECIAL, INDIRECT, CONSEQUENTIAL, INCIDENTAL OR PU-
NITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILI-
TY, ARISING OUT OF OR RELATED IN ANY WAY TO YOUR HAVING, IMPLEMENTING OR
OTHERWISE USING THE SPECIFICATION, EVEN IF SUN AND/OR ITS LICENSORS HAVE
BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
You will indemnify, hold harmless, and defend Sun and its licensors from any claims arising or resulting
from: (i) your use of the Specification; (ii) the use or distribution of your Java application, applet and/or
implementation; and/or (iii) any claims that later versions or releases of any Specification furnished to
you are incompatible with the Specification provided to you under this license.
Enterprise JavaBeans 3.0, Final Release Sun Microsystems, Inc.
4 5/2/06
RESTRICTED RIGHTS LEGEND
U.S. Government: If this Specification is being acquired by or on behalf of the U.S. Government or by a
U.S. Government prime contractor or subcontractor (at any tier), then the Government’s rights in the
Software and accompanying documentation shall be only as set forth in this license; this is in accordance
with 48 C.F.R. 227.7201 through 227.7202-4 (for Department of Defense (DoD) acquisitions) and with
48 C.F.R. 2.101 and 12.212 (for non-DoD acquisitions).
REPORT
If you provide Sun with any comments or suggestions concerning the Specification ("Feedback"), you
hereby: (i) agree that such Feedback is provided on a non-proprietary and non-confidential basis, and (ii)
grant Sun a perpetual, non-exclusive, worldwide, fully paid-up, irrevocable license, with the right to sub-
license through multiple levels of sublicensees, to incorporate, disclose, and use without limitation the
Feedback for any purpose.
GENERAL TERMS
Any action related to this Agreement will be governed by California law and controlling U.S. federal law.
The U.N. Convention for the International Sale of Goods and the choice of law rules of any jurisdiction
will not apply.
The Specification is subject to U.S. export control laws and may be subject to export or import regula-
tions in other countries. Licensee agrees to comply strictly with all such laws and regulations and ac-
knowledges that it has the responsibility to obtain such licenses to export, re-export or import as may be
required after delivery to Licensee.
This Agreement is the parties’ entire agreement relating to its subject matter. It supersedes all prior or
contemporaneous oral or written communications, proposals, conditions, representations and warranties
and prevails over any conflicting or additional terms of any quote, order, acknowledgment, or other com-
munication between the parties relating to its subject matter during the term of this Agreement. No mod-
ification to this Agreement will be binding, unless in writing and signed by an authorized representative
of each party.
Rev. April, 2006
Sun/Final/Full
Enterprise JavaBeans 3.0, Final Release
5 5/2/06
Sun Microsystems, Inc.
Table of Contents
Chapter 1 Introduction.................................................................................................................... 25
1.1 Target Audience............................................................................................... 25
1.2 What is New in EJB 3.0................................................................................... 25
1.3 EJB 3.0 Expert Group...................................................................................... 26
1.4 Organization of the Specification Documents................................................. 26
1.5 Document Conventions ................................................................................... 27
Chapter 2 Overview........................................................................................................................ 29
2.1 Overall Goals................................................................................................... 29
2.2 EJB Roles ........................................................................................................ 30
2.2.1 Enterprise Bean Provider .................................................................. 31
2.2.2 Application Assembler...................................................................... 31
2.2.3 Deployer............................................................................................ 31
2.2.4 EJB Server Provider.......................................................................... 32
2.2.5 EJB Container Provider..................................................................... 32
2.2.6 Persistence Provider.......................................................................... 33
2.2.7 System Administrator ....................................................................... 33
2.3 Enterprise Beans.............................................................................................. 34
2.3.1 Characteristics of Enterprise Beans .................................................. 34
2.3.2 Flexible Model .................................................................................. 34
2.4 Session, Entity, and Message-Driven Objects ................................................. 35
2.4.1 Session Objects ................................................................................. 35
2.4.2 Message-Driven Objects ................................................................... 36
2.4.3 Entity Objects.................................................................................... 36
2.5 Standard Mapping to CORBA Protocols......................................................... 36
2.6 Mapping to Web Service Protocols ................................................................. 37
Chapter 3 Client View of a Session Bean....................................................................................... 39
3.1 Overview ......................................................................................................... 39
3.2 Local, Remote, and Web Service Client Views............................................... 41
3.2.1 Remote Clients.................................................................................. 41
3.2.2 Local Clients ..................................................................................... 41
3.2.3 Choosing Between a Local or Remote Client View.......................... 42
3.2.4 Web Service Clients.......................................................................... 43
3.3 EJB Container.................................................................................................. 44
3.4 Client View of Session Beans Written to the EJB 3.0 Simplified API............ 44
3.4.1 Obtaining a Session Bean’s Business Interface ................................ 44
3.4.2 Session Bean’s Business Interface .................................................... 44
3.4.3 Client View of Session Object’s Life Cycle...................................... 45
3.4.4 Example of Obtaining and Using a Session Object .......................... 45
3.4.5 Session Object Identity ..................................................................... 47
3.4.5.1 Stateful Session Beans........................................................ 47