2381:
1101:
ill-defined requirements for the so-called "client-libraries"; a set of jar files that a Java client must have on its class-path in order to communicate with the remote EJB server. These client-libraries potentially conflict with libraries the client may already have (for instance, if the client itself is also a full Java EE server) and such a conflict is deemed to be very hard or impossible to resolve.
809:-like) services to a bean like transactions, security, interceptions, injections, and remoting. As an example, a client invokes a method on a proxy, which will first start a transaction with the help of the EJB container and then call the actual bean method. When the bean method returns, the proxy ends the transaction (i.e. by committing it or doing a rollback) and transfers control back to the client.
802:, which dynamically implements either the local or remote business interface that the client requested or a sub-type of the actual bean. The proxy can then be directly cast to the interface or bean respectively. A client is said to have a 'view' on the EJB, and the local interface, remote interface and bean sub-type itself respectively correspond to the local view, remote view and no-interface view.
721:
processes them automatically. Only JMS support is required by the Java EE spec, but
Message Driven Beans can support other messaging protocols. Such protocols may be asynchronous but can also be synchronous. Since session beans can also be synchronous or asynchronous, the prime difference between session- and message driven beans is not the synchronicity, but the difference between (object oriented)
1370:. Enterprise JavaBeans 3.2 was a relatively minor release that mainly contained specification clarifications and lifted some restrictions that were imposed by the spec but over time appeared to serve no real purpose. A few existing full EJB features were also demanded to be in EJB 3 lite and functionality that was proposed to be pruned in EJB 3.1 was indeed pruned (made optional).
828:
includes switching off transactions for the whole bean or specific methods, or requesting alternative strategies for transaction propagation and starting or joining a transaction. Such strategies mainly deal with what should happen if a transaction is or isn't already in progress at the time the bean is called. The following variations are supported:
1469:: This release made it much easier to write EJBs, using 'annotations' rather than the complex 'deployment descriptors' used in version 2.x. The use of home and remote interfaces and the ejb-jar.xml file were also no longer required in this release, having been replaced with a business interface and a bean that implements the interface.
599:: that is, they keep track of which calling client they are dealing with throughout a session and of the history of its requests, and thus access to the bean instance is strictly limited to only one client during its lifetime. If concurrent access to a single bean is attempted anyway the container serializes those requests, but via the
745:
Sending a configuration update to multiple nodes might be done by sending a JMS message to a 'message topic' and could be handled by a
Message Driven Bean listening to this topic (the message paradigm is used here since the sender does not need to know the number of consumers, their location, or even
551:
annotation. Its addCustomer method is typically bound to some UI component, such as a button. Contrary to the EJB, the backing bean does not contain any business logic or persistence code, but delegates such concerns to the EJB. The backing bean does know about a particular presentation, of which the
631:
access to the bean is prohibited. If concurrent access to a single bean is attempted, the container simply routes each request to a different instance. This makes a stateless session bean automatically thread-safe. Instance variables can be used during a single method call from a client to the bean,
1187:
set in the
Enterprise Bean implementation (at source level), although it is still possible to use an XML descriptor instead of (or in addition to) the annotations. If an XML descriptor and annotations are both applied to the same attribute within an Enterprise Bean, the XML definition overrides the
1100:
Communication via web services is typical for clients not written in the Java programming language, but is also convenient for Java clients who have trouble reaching the EJB server via a firewall. Additionally, web service based communication can be used by Java clients to circumvent the arcane and
749:
Submitting a job to a work cluster might be done by sending a JMS message to a 'message queue' and could also be handled by a
Message Driven Bean, but this time listening to a queue (the message paradigm and the queue is used, since the sender doesn't have to care which worker executes the job, but
617:
Checking out in a web store might be handled by a stateful session bean that would use its state to keep track of where the customer is in the checkout process, possibly holding locks on the items the customer is purchasing (from a system architecture's point of view, it would be less ideal to have
1175:
Old EJB containers from many vendors required more deployment information than that in the EJB specification. They would require the additional information as separate XML files, or some other configuration file format. An EJB platform vendor generally provided their own tools that would read this
636:
calls. Instances of
Stateless Session beans are typically pooled. If a second client accesses a specific bean right after a method call on it made by a first client has finished, it might get the same instance. The lack of overhead to maintain a conversation with the calling client makes them less
976:
A single bean can be obtained by any name matching the above patterns, depending on the 'location' of the client. Clients in the same module as the required bean can use the module scope and larger scopes, clients in the same application as the required bean can use the app scope and higher, etc.
827:
Container-managed transactions (CMT) are by default active for calls to session beans. That is, no explicit configuration is needed. This behavior may be declaratively tuned by the bean via annotations and if needed such configuration can later be overridden in the deployment descriptor. Tuning
603:
annotation the container can instead throw an exception. Stateful session beans' state may be persisted (passivated) automatically by the container to free up memory after the client hasn't accessed the bean for some time. The JPA extended persistence context is explicitly supported by
Stateful
720:
annotation. They were added in EJB to allow event-driven processing. Unlike session beans, an MDB does not have a client view (Local/Remote/No-interface), i. e. clients cannot look-up an MDB instance. An MDB just listens for any incoming message on, for example, a JMS queue or topic and
675:
Singleton
Session Beans are business objects having a global shared state within a JVM. Concurrent access to the one and only bean instance can be controlled by the container (Container-managed concurrency, CMC) or by the bean itself (Bean-managed concurrency, BMC). CMC can be tuned using the
653:
A user of a website clicking on a "keep me informed of future updates" box may trigger a call to an asynchronous method of the session bean to add the user to a list in the company's database (this call is asynchronous because the user does not need to wait to be informed of its success or
272:
Additionally, the
Jakarta Enterprise Beans specification defines the roles played by the EJB container and the EJBs as well as how to deploy the EJBs in a container. Note that the EJB specification does not detail how an application server provides persistence (a task delegated to the JPA
1137:
in a consistent manner regardless of the specific EJB platform that was chosen. Information about how the bean should be deployed (such as the name of the home or remote interfaces, whether and how to store the bean in a database, etc.) had to be specified in the deployment descriptor.
428:). The EJB takes care of managing the persistence context and the addCustomer() method is transactional and thread-safe by default. As demonstrated, the EJB focuses only on business logic and persistence and knows nothing about any particular presentation.
1310:
Other changes included removal of deprecated APIs that were pointless to move to the new top level package and the removal of features that depended on features that were removed from Java or elsewhere in
Jakarta EE 9. The following APIs were removed:
1410:. The purpose of the Enterprise JavaBeans 3.1 specification is to further simplify the EJB architecture by reducing its complexity from the developer's point of view, while also adding new functionality in response to the needs of the community:
657:
Fetching multiple independent pieces of data for a website, like a list of products and the history of the current user might be handled by asynchronous methods of a session bean as well (these calls are asynchronous because they can execute in
289:
functionality. The EJB 2.0 specification addressed this concern by adding the concept of local interfaces which could be called directly without performance penalties by applications that were not distributed over multiple servers.
797:
Clients of EJBs do not instantiate those beans directly via Java's new operator, but instead have to obtain a reference via the EJB container. This reference is usually not a reference to the implementation bean itself, but to a
680:
annotation, that designates whether a read lock or a write lock will be used for a method call. Additionally, Singleton
Session Beans can explicitly request to be instantiated when the EJB container starts up, using the
1566:
Make it easy to write (enterprise) applications: Application developers will not have to understand low-level transaction and state management details, multi-threading, connection pooling, and other complex low-level
149:
software). Such software addresses the same types of problem, and solutions to these problems are often repeatedly re-implemented by programmers. Jakarta Enterprise Beans is intended to handle such common concerns as
926:. This alternative can be used in cases where injection is not available, such as in non-managed code or standalone remote Java SE clients, or when it's necessary to programmatically determine which bean to obtain.
698:
Loading a global daily price list that will be the same for every user might be done with a singleton session bean, since this will prevent the application having to do the same query to a database over and over
711:
are business objects whose execution is triggered by messages instead of by method calls. The Message Driven Bean is used among others to provide a high level ease-of-use abstraction for the lower level JMS
333:
to enable a much less verbose coding style. Accordingly, in practical terms EJB 3.0 is much more lightweight and nearly a completely new API, bearing little resemblance to the previous EJB specifications.
910:) is used to send messages from beans to clients, to let clients receive asynchronous messages from these beans. MDBs can be used to receive messages from clients asynchronously using either a
778:. The specification describes how an EJB interacts with its container and how client code interacts with the container/EJB combination. The EJB classes used by applications are included in the
572:(different JVM) interface or directly without an interface, in which case local semantics apply. All session beans support asynchronous execution for all views (local/remote/no-interface).
281:
Businesses found that using EJBs to encapsulate business logic brought a performance penalty. This is because the original specification allowed only for remote method invocation through
1125:
and two Java interfaces. The EJB container created instances of the Java implementation class to provide the EJB implementation. The Java interfaces were used by client code of the EJB.
1188:
corresponding source-level annotation, although some XML elements can also be additive (e.g., an activation-config-property in XML with a different name than already defined via an
627:
Stateless Session Beans are business objects that do not have state associated with them. However, access to a single bean instance is still limited to only one client at a time,
812:
The EJB Container is responsible for ensuring the client code has sufficient access rights to an EJB. Security aspects can be declaratively applied to an EJB via annotations.
1668:
Defined the responsibilities of an EJB Container provider and server provider; together these make up a system that supports the deployment and execution of enterprise Beans.
1823:
1133:
With EJB 2.1 and earlier, the EJB specification required a deployment descriptor to be present. This was needed to implement a mechanism that allowed EJBs to be
255:
1200:
Starting with EJB 3.1, the EJB specification defines two variants of the EJB container; a full version and a limited version. The limited version adheres to a
1384:
TimerService can retrieve all active timers in the same EJB module (could previously only retrieve timers for the bean in which the TimerService was called)
1073:
Although the EJB specification does not mention exposure as RESTful web services in any way and has no explicit support for this form of communication, the
856:
If the client has started a transaction, it is used. Otherwise a new transaction is started. (this is the default when no explicit type has been specified)
2446:
1355:, as a part of Jakarta EE 8, and despite still using "EJB" abbreviation, this set of APIs has been officially renamed to "Jakarta Enterprise Beans" by the
64:
1035:
For communication with a client that's written in the Java programming language a session bean can expose a remote-view via an interface annotated with
1746:
1077:
specification does explicitly support EJB. Following the JAX-RS spec, Stateless and Singleton session beans can be declared as root resources via the
317:, participated in the EJB 3.0 process and is an outspoken advocate of the technology. Many features originally in Hibernate were incorporated in the
2078:
650:
Sending an e-mail to customer support might be handled by a stateless bean, since this is a one-off operation and not part of a multi-step process.
898:
API. This mode of operation is called Bean Managed Transactions (BMT), since the bean itself handles the transaction instead of the container.
2103:
2221:
716:) specification. It may subscribe to JMS message queues or message topics, which typically happens via the activationConfig attribute of the
273:
specification), but instead details how business logic can easily integrate with the persistence services offered by the application server.
2738:
2478:
305:
to simplify configuration and integration of heterogeneous systems. EJB 3.0 along with the other version of the EJB can be integrated with
2270:
228:
1574:. An enterprise Bean can be developed once, and then deployed on multiple platforms without recompilation or source code modification.
2274:
2733:
1176:
deployment descriptor, and possibly generated a set of classes that would implement the now deprecated Home and Remote interfaces.
922:
As an alternative to injection, clients of an EJB can obtain a reference to the session bean's proxy object (the EJB stub) using
575:
Message Driven Beans (MDBs, also known as Message Beans). MDBs also support asynchronous execution, but via a messaging paradigm.
310:
2322:
2743:
2349:"JavaOne Conference Trip Report: Enterprise JavaBeans Technology: Developing and Deploying Business Applications as Components"
1593:
Provide interoperability between enterprise Beans and Java EE components as well as non-Java programming language applications.
1580:
Define the contracts that enable tools from multiple vendors to develop and deploy components that can interoperate at runtime.
1262:
it does not support the "persistent" attribute that full EJB 3.2 does support. The complete excluded list for EJB 3.2 Lite is:
107:
1062:
specifications. JAX-RPC support however is proposed for future removal. To support JAX-WS, the session bean is annotated with
762:
590:
213:
184:
151:
1097:
annotations. This however does not count as a "web service client view", which is used exclusively for JAX-WS and JAX-RPC.
2627:
2622:
1149:
document having an entry for each EJB to be deployed. This XML document specifies the following information for each EJB:
330:
1827:
894:
Alternatively, the bean can also declare via an annotation that it wants to handle transactions programmatically via the
2612:
2519:
1043:
which may be running on other systems (from the point of view of the EJB container, any code in another JVM is remote).
1955:
285:(and optionally other protocols), even though the large majority of business applications actually do not require this
162:
in a standard way, leaving programmers free to concentrate on the particular parts of the enterprise software at hand.
2697:
2514:
1587:
1571:
1553:
1336:"Support for Distributed Interoperability" to reflect the removal of CORBA from Java 11 and the Jakarta EE 9 Platform.
806:
251:
1583:
Be compatible with existing server platforms. Vendors will be able to extend their existing products to support EJBs.
1115:
2707:
2702:
2634:
791:
786:
297:
220) was a departure from its predecessors, following a new light-weight paradigm. EJB 3.0 shows an influence from
848:
If the client has not started a transaction, an exception is thrown. Otherwise the client's transaction is used.
722:
633:
425:
805:
This proxy is needed in order to give the EJB container the opportunity to transparently provide cross-cutting (
2617:
2471:
1522:
1122:
1046:
Stateless and Singleton session beans may also expose a "web service client view" for remote communication via
780:
596:
199:
1750:
2671:
1299:, as a part of Jakarta EE 9, was a tooling release that mainly moved API package names from the top level
294:
178:
115:
87:
2082:
663:
564:
Session Beans that can be either "Stateful", "Stateless" or "Singleton" and can be accessed via either a
1417:
1142:
662:
that way, which potentially increases performance). In this case, the asynchronous method will return a
632:
but the contents of those instance variables are not guaranteed to be preserved across different client
314:
286:
234:
1559:
Make it possible to build distributed applications by combining components developed using tools from
2579:
2554:
2509:
1506:
907:
895:
713:
628:
318:
302:
60:
2107:
1340:
Other minor changes include marking the Enterprise Beans 2.x API Group as "Optional" and making the
2650:
2594:
2569:
2546:
2464:
2348:
1577:
Address the development, deployment, and runtime aspects of an enterprise application’s life cycle.
1134:
261:
194:
188:
142:
75:
53:
2225:
2681:
2655:
2589:
1512:
Message destinations (the same idea as EJB references, resource references, etc.) has been added.
1356:
775:
725:
659:
265:
207:
171:
2411:
888:
If the client has started a transaction, an exception is thrown. No new transaction is started.
1686:
864:
If the client has started a transaction, it is suspended. A new transaction is always started.
761:
fires, the MDB is automatically invoked. Since Java EE doesn't know about Quartz by default, a
2574:
2033:
1433:
247:
224:
203:
159:
79:
49:
2391:
2301:
929:
JNDI names for EJB session beans are assigned by the EJB container via the following scheme:
145:") 'business' software typically found in enterprise applications (as opposed to 'front-end'
2401:
1518:
544:
298:
111:
1988:
2676:
2559:
2504:
2496:
1352:
1323:
1296:
1184:
729:
326:
880:
If the client has started a transaction, it is suspended. No new transaction is started.
765:
resource adapter would be needed and the MDB would be annotated with a reference to this.
141:
The EJB specification provides a standard way to implement the server-side (also called "
2302:"What's new in EJB 3.2 ? - Java EE 7 chugging along! (Arun Gupta, Miles to go ...)"
2201:"Communication between JBoss AS 5 and JBoss AS 6 | JBoss AS | JBoss Community"
872:
If the client has started a transaction, it is used. Otherwise, no transaction is used.
2380:
155:
146:
67:
2727:
2524:
2326:
1201:
799:
218:
71:
17:
1515:
EJB query language (EJB-QL) additions: ORDER BY, AVG, MIN, MAX, SUM, COUNT, and MOD.
2584:
1502:
EJB timer service (new): Event-based mechanism for invoking EJBs at specific times.
91:
83:
2386:
2374:
2604:
1885:
1659:
Defined the distinct "EJB Roles" that are assumed by the component architecture.
1488:
1446:
322:
242:
57:
1499:. Also, an EJB can easily access a Web service using the new service reference.
2487:
2280:
1081:
annotation and EJB business methods can be mapped to resource methods via the
2406:
2396:
2536:
2456:
2257:
JSR 318, Table 27 - Required contents of EJB 3.1 Lite and Full EJB 3.1 API,
31:
2323:"If you didn't know what is coming in EJB 3.2... (Marina Vatkina's Weblog)"
2200:
1638:
Specify in greater detail the responsibilities of the individual EJB roles.
1377:
Passivation of a stateful session bean can be deactivated via attribute on
2434:
2428:
2422:
2416:
1477:
1462:
127:
123:
2529:
2440:
1533:
306:
238:
119:
1246:
EJB 3.2 Lite excludes less features. Particularly it no longer excludes
1192:
annotation will be added instead of replacing all existing properties).
1121:
With EJB 2.1 and earlier, each EJB had to provide a Java implementation
424:
The above defines a service class for persisting a Customer object (via
2447:"Working with Message-Driven Beans" from EJB3 in Action, Second Edition
1648:
1205:
1055:
342:
The following shows a basic example of what an EJB looks like in code:
95:
2258:
2246:
2188:
2176:
2164:
2152:
2140:
2128:
2066:
2054:
2021:
2009:
1976:
1942:
1930:
1918:
1906:
1873:
1861:
1849:
1811:
1799:
1784:
1772:
1734:
1407:
1367:
1180:
135:
131:
1391:) can be transactional for stateful session beans using the existing
1074:
1059:
431:
Such an EJB can be used by a class in e.g. the web layer as follows:
754:
325:
in EJB 3.0. The EJB 3.0 specification relies heavily on the use of
984:
could use the following code to obtain a (local) reference to it:
282:
1326:
to reflect the removal of XML RPC from the Jakarta EE 9 Platform.
980:
E.g. code running in the same module as the CustomerService bean
2712:
1496:
1492:
1427:
1208:(which is itself a subset of the full Java EE 6 specification).
1051:
1047:
923:
821:
547:(JSF) backing bean in which the EJB is injected by means of the
329:(a feature added to the Java language with its 5.0 release) and
2460:
1651:, Sun's third Java developers conference (March 24 through 27)
1635:
Provide better support for application assembly and deployment.
1505:
Message-driven beans accepts messages from sources other than
1146:
1040:
2451:
1039:. This allows those beans to be called from clients in other
1491:
support (new): stateless session beans can be invoked over
1398:
Autocloseable interface implemented by embeddable container
774:
EJBs are deployed in an EJB container, typically within an
106:
The EJB specification was originally developed in 1997 by
1211:
EJB 3.1 Lite excludes support for the following features:
1570:
Will follow the "Write Once, Run Anywhere" philosophy of
1204:
of the specification called EJB 3.1 Lite and is part of
750:
it does need assurance that a job is only executed once).
27:
Java API for modular construction of enterprise software
982:(as given by the example shown earlier in this article)
757:
can be handled by a Message Driven Bean; when a Quartz
1747:"Optional Local Business Interfaces (Ken Saks's Blog)"
301:
in its use of plain Java objects, and its support for
1114:"Home interface" redirects here. For other uses, see
1521:
is used to specify deployment descriptors, replaces
2690:
2664:
2643:
2603:
2545:
2495:
1359:so as not to tread on the Oracle "Java" trademark.
1341:
1330:
1316:
1304:
1300:
1066:, and methods that are to be exposed remotely with
820:EJB containers must support both container managed
595:Stateful Session Beans are business objects having
1596:Be compatible with the CORBA protocols (RMI-IIOP).
972:(entries in square brackets denote optional parts)
949:java:global/<module-name>/<bean-name>
1548:The standard component architecture for building
560:An EJB container holds two major types of beans:
114:(EJB 1.0 and 1.1) in 1999 and enhanced under the
1794:
1792:
1414:Local view without interface (No-interface view)
1110:Home interfaces and required business interface
957:java:app/<module-name>/<bean-name>
78:for web related software components, including
2104:"Portable Global JNDI Names (Ken Saks's Blog)"
1439:Application Initialization and Shutdown Events
2472:
2224:. Wiki.caucho.com. 2010-02-12. Archived from
1665:Defined the enterprise Bean developer’s view.
1624:Entity Bean support - mandatory, not optional
1275:Persistent timers ("persistent" attribute on
794:used only by EJB container implementations.)
8:
1662:Defined the client view of enterprise Beans.
824:transactions and bean managed transactions.
2079:"Portable Global JNDI names (MaheshKannan)"
94:. The EJB specification is a subset of the
2479:
2465:
2457:
2379:
924:Java Naming and Directory Interface (JNDI)
832:Declarative Transactions Management Types
2222:"Resin Java EE 6 Web Profile - Resin 3.0"
1621:Security - role driven, not method driven
1552:object-oriented business applications in
1171:Stateful or Stateless (for Session Beans)
1156:Java class for the Bean (business object)
637:resource-intensive than stateful beans.
174:provides the following responsibilities:
1165:Persistent store (only for Entity Beans)
931:
830:
2276:Jakarta Enterprise Beans, Core Features
1954:Developing Quartz MDB (29 April 2009).
1678:
1423:EJB Lite: definition of a subset of EJB
1381:annotation (passivationCapable = false)
1235:Asynchronous session bean invocations (
1022:"java:module/CustomerService"
1162:Java interface for the business object
1348:EJB 3.2.6, final release (2019-08-23)
1183:), the XML descriptor is replaced by
1159:Java interface for the Home interface
170:The EJB specification details how an
7:
1319:which has been removed from Java 14.
2259:http://jcp.org/en/jsr/detail?id=318
2247:http://jcp.org/en/jsr/detail?id=318
2189:http://jcp.org/en/jsr/detail?id=311
2177:http://jcp.org/en/jsr/detail?id=318
2165:http://jcp.org/en/jsr/detail?id=318
2153:http://jcp.org/en/jsr/detail?id=318
2141:http://jcp.org/en/jsr/detail?id=318
2129:http://jcp.org/en/jsr/detail?id=318
2067:http://jcp.org/en/jsr/detail?id=318
2055:http://jcp.org/en/jsr/detail?id=318
2022:http://jcp.org/en/jsr/detail?id=318
2010:http://jcp.org/en/jsr/detail?id=318
1977:http://jcp.org/en/jsr/detail?id=318
1943:http://jcp.org/en/jsr/detail?id=318
1931:http://jcp.org/en/jsr/detail?id=318
1919:http://jcp.org/en/jsr/detail?id=318
1907:http://jcp.org/en/jsr/detail?id=318
1874:http://jcp.org/en/jsr/detail?id=318
1862:http://jcp.org/en/jsr/detail?id=318
1850:http://jcp.org/en/jsr/detail?id=318
1812:http://jcp.org/en/jsr/detail?id=318
1800:http://jcp.org/en/jsr/detail?id=318
1785:http://jcp.org/en/jsr/detail?id=318
1773:http://jcp.org/en/jsr/detail?id=318
1735:http://jcp.org/en/jsr/detail?id=318
1601:EJB 1.1, final release (1999-12-17)
1529:EJB 2.0, final release (2001-08-22)
1473:EJB 2.1, final release (2003-11-24)
1458:EJB 3.0, final release (2006-05-11)
1403:EJB 3.1, final release (2009-12-10)
1373:The following features were added:
1363:EJB 3.2, final release (2013-05-28)
1292:EJB 4.0, final release (2020-05-22)
229:Java Naming and Directory Interface
2106:. Blogs.oracle.com. Archived from
2081:. Blogs.oracle.com. Archived from
753:Processing timing events from the
25:
1824:"Persistence Context in Stateful"
1687:"Enterprise JavaBeans Technology"
84:Java servlet lifecycle management
2279:. Jakarta Enterprise Beans 4.0.
1724:, 2002, Wrox Press Ltd., p. 19.
1116:Home interface (disambiguation)
1054:or plain XML. This follows the
618:the client manage those locks).
1712:, 2002 Wrox Press Ltd., p. 5.
1442:EJB Timer Service Enhancements
1168:Security roles and permissions
1129:Required deployment descriptor
1031:Remoting/distributed execution
965:java:module/<bean-name>
591:Conversational state (Java EE)
214:Asynchronous method invocation
1:
2271:"What is New in This Release"
918:Naming and directory services
529:"customer_overview"
331:convention over configuration
313:. Gavin King, the creator of
309:-v4 using MuleSoft certified
2245:JSR 318, 21.1 EJB 3.1 Lite,
1353:Jakarta Enterprise Beans 3.2
1297:Jakarta Enterprise Beans 4.0
1272:JAX-WS Web Service Endpoints
1221:JAX-WS Web Service Endpoints
52:for modular construction of
2739:Java specification requests
1722:J2EE Design and Development
1710:J2EE Design and Development
1420:packaging of EJB components
1331:EJBContext.getEnvironment()
293:The EJB 3.0 specification (
2760:
1612:XML deployment descriptors
1153:Name of the Home interface
1113:
792:service provider interface
588:
523:// abbreviated for brevity
235:Interprocess Communication
70:of an application. An EJB
29:
2397:The EJB 3.0 Specification
2034:"Transaction Annotations"
1810:JSR 318, 4.3.14, 21.4.2,
1586:Be compatible with other
1436:(Singleton Session Beans)
1303:package to the top level
1269:RMI-IIOP Interoperability
1218:RMI-IIOP Interoperability
1190:@ActivationConfigProperty
556:Types of Enterprise Beans
311:PlektonLabs EJB Connector
2734:Java enterprise platform
1387:Lifecycle methods (e.g.
986:
433:
344:
268:in an application server
200:Event-driven programming
187:services offered by the
166:General responsibilities
38:Jakarta Enterprise Beans
30:Not to be confused with
1956:"Developing Quartz MDB"
1344:annotation repeatable.
1206:Java EE 6's web profile
671:Singleton Session Beans
623:Stateless Session Beans
156:transactional integrity
2744:Java platform software
2402:Sun's EJB 3.0 Tutorial
2387:Java EE 8 API Javadocs
2187:JSR 311, Chapter 6.2,
1989:"Security Annotations"
1317:java.security.Identity
585:Stateful Session Beans
552:EJB had no knowledge.
321:, the replacement for
179:Transaction processing
116:Java Community Process
88:transaction processing
2713:Streaming API for XML
2628:Web Services Metadata
2623:SOAP with Attachments
2452:Client invokes an EJB
2203:. Community.jboss.org
2127:JSR 318, Chapter 15,
2008:JSR 318, Chapter 13,
1975:JSR 318, Chapter 17,
1615:Default JNDI contexts
1393:@TransactionAttribute
1143:deployment descriptor
287:distributed computing
183:Integration with the
110:and later adopted by
18:Enterprise Java Beans
2555:Dependency injection
2392:EJB 3.0 API Javadocs
2036:. Openejb.apache.org
1991:. Openejb.apache.org
1888:. Openejb.apache.org
1643:EJB 1.0 (1998-03-24)
1426:Portable EJB Global
1282:Message-driven beans
1242:Message-driven beans
1196:Container variations
1001:CustomerServiceLocal
989:CustomerServiceLocal
908:Java Message Service
714:Java Message Service
709:Message Driven Beans
704:Message driven beans
543:The above defines a
319:Java Persistence API
303:dependency injection
48:) is one of several
46:Enterprise JavaBeans
2515:Expression Language
1958:. Mastertheboss.com
1753:on 19 November 2015
1322:methods relying on
1315:methods relying on
1224:EJB Timer Service (
934:
833:
266:software components
195:Concurrency control
189:Jakarta Persistence
76:runtime environment
54:enterprise software
2407:EJB (3.0) Glossary
2283:. November 5, 2020
1453:for session beans)
1357:Eclipse Foundation
932:
914:Queue or a Topic.
831:
776:application server
746:their exact type).
225:directory services
208:Jakarta Connectors
172:application server
61:software component
2721:
2720:
2351:. Alephnaught.com
2053:JSR 318, 13.3.6,
2020:JSR 318, 13.6.2,
1860:JSR 318, 4.3.14,
1798:JSR 318, 4.10.3,
1655:for Release 1.0:
1631:for Release 1.1:
1561:different vendors
1266:Remote interfaces
1215:Remote interfaces
969:
968:
892:
891:
204:Jakarta Messaging
80:computer security
16:(Redirected from
2751:
2565:Enterprise Beans
2481:
2474:
2467:
2458:
2383:
2378:
2377:
2375:Official website
2360:
2359:
2357:
2356:
2345:
2339:
2338:
2336:
2334:
2325:. Archived from
2319:
2313:
2312:
2310:
2308:
2298:
2292:
2291:
2289:
2288:
2267:
2261:
2255:
2249:
2243:
2237:
2236:
2234:
2233:
2218:
2212:
2211:
2209:
2208:
2197:
2191:
2185:
2179:
2173:
2167:
2163:JSR 318, 4.3.6,
2161:
2155:
2151:JSR 318, 3.2.4,
2149:
2143:
2137:
2131:
2125:
2119:
2118:
2116:
2115:
2100:
2094:
2093:
2091:
2090:
2075:
2069:
2063:
2057:
2051:
2045:
2044:
2042:
2041:
2030:
2024:
2018:
2012:
2006:
2000:
1999:
1997:
1996:
1985:
1979:
1973:
1967:
1966:
1964:
1963:
1951:
1945:
1941:JSR 318, 5.6.2,
1939:
1933:
1929:JSR 318, 5.4.2,
1927:
1921:
1917:JSR 318, 5.7.2,
1915:
1909:
1903:
1897:
1896:
1894:
1893:
1882:
1876:
1870:
1864:
1858:
1852:
1846:
1840:
1839:
1837:
1835:
1830:on 16 March 2008
1826:. Archived from
1820:
1814:
1808:
1802:
1796:
1787:
1781:
1775:
1769:
1763:
1762:
1760:
1758:
1749:. Archived from
1743:
1737:
1731:
1725:
1719:
1713:
1707:
1701:
1700:
1698:
1697:
1683:
1452:
1394:
1390:
1380:
1343:
1332:
1318:
1306:
1302:
1278:
1261:
1257:
1253:
1249:
1238:
1231:
1227:
1191:
1185:Java annotations
1096:
1092:
1088:
1084:
1080:
1069:
1065:
1038:
1026:
1023:
1020:
1017:
1014:
1011:
1008:
1005:
1002:
999:
996:
993:
990:
935:
834:
789:
783:
755:Quartz scheduler
719:
684:
679:
602:
550:
545:JavaServer Faces
539:
536:
533:
530:
527:
524:
521:
518:
515:
512:
509:
506:
503:
500:
497:
494:
491:
488:
485:
482:
479:
476:
473:
470:
467:
464:
461:
458:
455:
452:
449:
446:
443:
440:
437:
420:
417:
414:
411:
408:
405:
402:
399:
396:
393:
390:
387:
384:
381:
378:
375:
372:
369:
366:
363:
360:
357:
354:
351:
348:
112:Sun Microsystems
21:
2759:
2758:
2754:
2753:
2752:
2750:
2749:
2748:
2724:
2723:
2722:
2717:
2686:
2660:
2639:
2599:
2560:Bean Validation
2541:
2491:
2485:
2373:
2372:
2369:
2364:
2363:
2354:
2352:
2347:
2346:
2342:
2332:
2330:
2329:on 4 March 2016
2321:
2320:
2316:
2306:
2304:
2300:
2299:
2295:
2286:
2284:
2269:
2268:
2264:
2256:
2252:
2244:
2240:
2231:
2229:
2220:
2219:
2215:
2206:
2204:
2199:
2198:
2194:
2186:
2182:
2174:
2170:
2162:
2158:
2150:
2146:
2138:
2134:
2126:
2122:
2113:
2111:
2102:
2101:
2097:
2088:
2086:
2077:
2076:
2072:
2064:
2060:
2052:
2048:
2039:
2037:
2032:
2031:
2027:
2019:
2015:
2007:
2003:
1994:
1992:
1987:
1986:
1982:
1974:
1970:
1961:
1959:
1953:
1952:
1948:
1940:
1936:
1928:
1924:
1916:
1912:
1904:
1900:
1891:
1889:
1886:"Singleton EJB"
1884:
1883:
1879:
1871:
1867:
1859:
1855:
1847:
1843:
1833:
1831:
1822:
1821:
1817:
1809:
1805:
1797:
1790:
1782:
1778:
1770:
1766:
1756:
1754:
1745:
1744:
1740:
1732:
1728:
1720:
1716:
1708:
1704:
1695:
1693:
1685:
1684:
1680:
1675:
1450:
1392:
1388:
1378:
1324:Jakarta XML RPC
1289:
1287:Version history
1276:
1259:
1255:
1251:
1247:
1236:
1229:
1225:
1198:
1189:
1179:Since EJB 3.0 (
1131:
1119:
1112:
1107:
1094:
1090:
1086:
1082:
1078:
1067:
1063:
1036:
1033:
1028:
1027:
1024:
1021:
1018:
1015:
1012:
1009:
1006:
1003:
1000:
997:
994:
992:customerService
991:
988:
920:
904:
818:
785:
779:
772:
717:
706:
682:
677:
673:
625:
604:Session Beans.
600:
593:
587:
582:
558:
548:
541:
540:
537:
534:
531:
528:
525:
522:
519:
516:
513:
510:
507:
504:
501:
498:
495:
493:customerService
492:
489:
486:
483:
480:
477:
474:
471:
468:
465:
463:customerService
462:
460:CustomerService
459:
456:
453:
450:
448:CustomerBacking
447:
444:
441:
438:
435:
422:
421:
418:
415:
412:
409:
406:
403:
400:
397:
394:
391:
388:
385:
382:
379:
376:
373:
370:
367:
364:
361:
358:
356:CustomerService
355:
352:
349:
346:
340:
279:
168:
104:
98:specification.
35:
28:
23:
22:
15:
12:
11:
5:
2757:
2755:
2747:
2746:
2741:
2736:
2726:
2725:
2719:
2718:
2716:
2715:
2710:
2705:
2700:
2694:
2692:
2688:
2687:
2685:
2684:
2679:
2674:
2668:
2666:
2662:
2661:
2659:
2658:
2653:
2647:
2645:
2641:
2640:
2638:
2637:
2632:
2631:
2630:
2625:
2615:
2609:
2607:
2601:
2600:
2598:
2597:
2592:
2587:
2582:
2577:
2572:
2567:
2562:
2557:
2551:
2549:
2547:Enterprise app
2543:
2542:
2540:
2539:
2534:
2533:
2532:
2522:
2517:
2512:
2507:
2501:
2499:
2493:
2492:
2490:specifications
2486:
2484:
2483:
2476:
2469:
2461:
2455:
2454:
2449:
2444:
2438:
2432:
2426:
2420:
2414:
2409:
2404:
2399:
2394:
2389:
2384:
2368:
2367:External links
2365:
2362:
2361:
2340:
2314:
2293:
2262:
2250:
2238:
2213:
2192:
2180:
2175:JSR 318, 2.7,
2168:
2156:
2144:
2139:JSR 318, 2.6,
2132:
2120:
2095:
2070:
2065:JSR 318, 4.4,
2058:
2046:
2025:
2013:
2001:
1980:
1968:
1946:
1934:
1922:
1910:
1905:JSR 318, 5.1,
1898:
1877:
1872:JSR 318, 4.8,
1865:
1853:
1848:JSR 318, 4.7,
1841:
1815:
1803:
1788:
1783:JSR 318, 4.6,
1776:
1771:JSR 318, 4.5,
1764:
1738:
1733:JSR 318, 4.1,
1726:
1714:
1702:
1691:www.oracle.com
1677:
1676:
1674:
1671:
1670:
1669:
1666:
1663:
1660:
1640:
1639:
1636:
1626:
1625:
1622:
1619:
1616:
1613:
1598:
1597:
1594:
1591:
1584:
1581:
1578:
1575:
1568:
1564:
1557:
1526:
1525:
1516:
1513:
1510:
1503:
1500:
1455:
1454:
1443:
1440:
1437:
1431:
1424:
1421:
1415:
1400:
1399:
1396:
1389:@PostConstruct
1385:
1382:
1338:
1337:
1334:
1327:
1320:
1288:
1285:
1284:
1283:
1280:
1273:
1270:
1267:
1244:
1243:
1240:
1233:
1222:
1219:
1216:
1197:
1194:
1173:
1172:
1169:
1166:
1163:
1160:
1157:
1154:
1130:
1127:
1111:
1108:
1106:
1103:
1032:
1029:
1010:InitialContext
987:
967:
966:
963:
959:
958:
955:
951:
950:
947:
943:
942:
939:
919:
916:
903:
900:
890:
889:
886:
882:
881:
878:
877:NOT_SUPPORTED
874:
873:
870:
866:
865:
862:
858:
857:
854:
850:
849:
846:
842:
841:
838:
817:
814:
784:package. (The
771:
768:
767:
766:
751:
747:
742:
741:
739:
718:@MessageDriven
705:
702:
701:
700:
695:
694:
692:
672:
669:
668:
667:
655:
651:
647:
646:
644:
624:
621:
620:
619:
614:
613:
611:
601:@AccessTimeout
586:
583:
581:
578:
577:
576:
573:
568:(same JVM) or
557:
554:
439:@RequestScoped
434:
345:
339:
336:
278:
275:
270:
269:
259:
245:
232:
221:
219:Job scheduling
216:
211:
197:
192:
181:
167:
164:
147:user interface
134:(EJB 3.1) and
103:
100:
68:business logic
26:
24:
14:
13:
10:
9:
6:
4:
3:
2:
2756:
2745:
2742:
2740:
2737:
2735:
2732:
2731:
2729:
2714:
2711:
2709:
2706:
2704:
2701:
2699:
2696:
2695:
2693:
2689:
2683:
2680:
2678:
2675:
2673:
2670:
2669:
2667:
2663:
2657:
2654:
2652:
2649:
2648:
2646:
2642:
2636:
2633:
2629:
2626:
2624:
2621:
2620:
2619:
2616:
2614:
2611:
2610:
2608:
2606:
2602:
2596:
2593:
2591:
2588:
2586:
2583:
2581:
2578:
2576:
2573:
2571:
2568:
2566:
2563:
2561:
2558:
2556:
2553:
2552:
2550:
2548:
2544:
2538:
2535:
2531:
2528:
2527:
2526:
2523:
2521:
2518:
2516:
2513:
2511:
2508:
2506:
2503:
2502:
2500:
2498:
2494:
2489:
2482:
2477:
2475:
2470:
2468:
2463:
2462:
2459:
2453:
2450:
2448:
2445:
2442:
2439:
2436:
2433:
2430:
2427:
2424:
2421:
2418:
2415:
2413:
2410:
2408:
2405:
2403:
2400:
2398:
2395:
2393:
2390:
2388:
2385:
2382:
2376:
2371:
2370:
2366:
2350:
2344:
2341:
2328:
2324:
2318:
2315:
2303:
2297:
2294:
2282:
2278:
2277:
2272:
2266:
2263:
2260:
2254:
2251:
2248:
2242:
2239:
2228:on 2012-03-23
2227:
2223:
2217:
2214:
2202:
2196:
2193:
2190:
2184:
2181:
2178:
2172:
2169:
2166:
2160:
2157:
2154:
2148:
2145:
2142:
2136:
2133:
2130:
2124:
2121:
2110:on 2011-12-29
2109:
2105:
2099:
2096:
2085:on 2011-06-20
2084:
2080:
2074:
2071:
2068:
2062:
2059:
2056:
2050:
2047:
2035:
2029:
2026:
2023:
2017:
2014:
2011:
2005:
2002:
1990:
1984:
1981:
1978:
1972:
1969:
1957:
1950:
1947:
1944:
1938:
1935:
1932:
1926:
1923:
1920:
1914:
1911:
1908:
1902:
1899:
1887:
1881:
1878:
1875:
1869:
1866:
1863:
1857:
1854:
1851:
1845:
1842:
1829:
1825:
1819:
1816:
1813:
1807:
1804:
1801:
1795:
1793:
1789:
1786:
1780:
1777:
1774:
1768:
1765:
1752:
1748:
1742:
1739:
1736:
1730:
1727:
1723:
1718:
1715:
1711:
1706:
1703:
1692:
1688:
1682:
1679:
1672:
1667:
1664:
1661:
1658:
1657:
1656:
1654:
1650:
1647:Announced at
1645:
1644:
1637:
1634:
1633:
1632:
1630:
1623:
1620:
1618:RMI over IIOP
1617:
1614:
1611:
1610:
1609:
1607:
1606:Major changes
1603:
1602:
1595:
1592:
1589:
1585:
1582:
1579:
1576:
1573:
1569:
1565:
1562:
1558:
1555:
1551:
1547:
1546:
1545:
1543:
1542:Overall goals
1539:
1538:Major changes
1535:
1531:
1530:
1524:
1520:
1517:
1514:
1511:
1508:
1504:
1501:
1498:
1494:
1490:
1487:
1486:
1485:
1483:
1482:Major changes
1479:
1475:
1474:
1470:
1468:
1467:Major changes
1464:
1460:
1459:
1451:@Asynchronous
1448:
1444:
1441:
1438:
1435:
1432:
1429:
1425:
1422:
1419:
1416:
1413:
1412:
1411:
1409:
1405:
1404:
1397:
1386:
1383:
1376:
1375:
1374:
1371:
1369:
1365:
1364:
1360:
1358:
1354:
1350:
1349:
1345:
1335:
1328:
1325:
1321:
1314:
1313:
1312:
1308:
1298:
1294:
1293:
1286:
1281:
1274:
1271:
1268:
1265:
1264:
1263:
1248:@Asynchronous
1241:
1237:@Asynchronous
1234:
1223:
1220:
1217:
1214:
1213:
1212:
1209:
1207:
1203:
1202:proper subset
1195:
1193:
1186:
1182:
1177:
1170:
1167:
1164:
1161:
1158:
1155:
1152:
1151:
1150:
1148:
1144:
1139:
1136:
1128:
1126:
1124:
1117:
1109:
1104:
1102:
1098:
1076:
1071:
1061:
1057:
1053:
1049:
1044:
1042:
1030:
985:
983:
978:
974:
973:
964:
961:
960:
956:
953:
952:
948:
945:
944:
941:Name pattern
940:
937:
936:
930:
927:
925:
917:
915:
913:
909:
901:
899:
897:
887:
884:
883:
879:
876:
875:
871:
868:
867:
863:
861:REQUIRES_NEW
860:
859:
855:
852:
851:
847:
844:
843:
839:
836:
835:
829:
825:
823:
815:
813:
810:
808:
803:
801:
795:
793:
790:package is a
788:
787:javax.ejb.spi
782:
777:
769:
764:
760:
756:
752:
748:
744:
743:
740:
738:
735:
734:
733:
731:
727:
724:
715:
710:
703:
697:
696:
693:
691:
688:
687:
686:
685:annotation.
670:
665:
661:
656:
652:
649:
648:
645:
643:
640:
639:
638:
635:
630:
622:
616:
615:
612:
610:
607:
606:
605:
598:
592:
584:
580:Session beans
579:
574:
571:
567:
563:
562:
561:
555:
553:
546:
432:
429:
427:
398:entityManager
368:entityManager
365:EntityManager
343:
337:
335:
332:
328:
324:
320:
316:
312:
308:
304:
300:
296:
291:
288:
284:
276:
274:
267:
263:
260:
257:
253:
249:
246:
244:
240:
236:
233:
230:
226:
222:
220:
217:
215:
212:
209:
205:
201:
198:
196:
193:
190:
186:
182:
180:
177:
176:
175:
173:
165:
163:
161:
157:
153:
148:
144:
139:
137:
133:
129:
125:
121:
117:
113:
109:
102:Specification
101:
99:
97:
93:
89:
85:
81:
77:
73:
72:web container
69:
66:
62:
59:
55:
51:
47:
43:
39:
33:
19:
2605:Web services
2564:
2353:. Retrieved
2343:
2331:. Retrieved
2327:the original
2317:
2305:. Retrieved
2296:
2285:. Retrieved
2275:
2265:
2253:
2241:
2230:. Retrieved
2226:the original
2216:
2205:. Retrieved
2195:
2183:
2171:
2159:
2147:
2135:
2123:
2112:. Retrieved
2108:the original
2098:
2087:. Retrieved
2083:the original
2073:
2061:
2049:
2038:. Retrieved
2028:
2016:
2004:
1993:. Retrieved
1983:
1971:
1960:. Retrieved
1949:
1937:
1925:
1913:
1901:
1890:. Retrieved
1880:
1868:
1856:
1844:
1832:. Retrieved
1828:the original
1818:
1806:
1779:
1767:
1755:. Retrieved
1751:the original
1741:
1729:
1721:
1717:
1709:
1705:
1694:. Retrieved
1690:
1681:
1652:
1649:JavaOne 1998
1646:
1642:
1641:
1628:
1627:
1605:
1604:
1600:
1599:
1560:
1549:
1541:
1537:
1532:
1528:
1527:
1481:
1476:
1472:
1471:
1466:
1461:
1457:
1456:
1406:
1402:
1401:
1372:
1366:
1362:
1361:
1351:
1347:
1346:
1339:
1309:
1295:
1291:
1290:
1245:
1210:
1199:
1178:
1174:
1140:
1132:
1120:
1099:
1072:
1045:
1034:
981:
979:
975:
971:
970:
954:Application
928:
921:
911:
905:
893:
840:Explanation
826:
819:
816:Transactions
811:
804:
796:
773:
758:
736:
708:
707:
689:
674:
641:
626:
608:
594:
569:
565:
559:
542:
430:
423:
341:
323:entity beans
292:
280:
271:
243:Web services
169:
140:
105:
92:web services
90:, and other
65:encapsulates
45:
41:
37:
36:
2595:Annotations
1550:distributed
1489:Web service
1329:deprecated
1305:jakarta.ejb
1064:@WebService
933:JNDI names
499:addCustomer
475:addCustomer
426:O/R mapping
380:addCustomer
327:annotations
223:Naming and
185:persistence
152:persistence
138:(EJB 3.2).
130:(EJB 3.0),
126:(EJB 2.1),
122:(EJB 2.0),
74:provides a
58:server-side
56:. EJB is a
44:; formerly
2728:Categories
2682:Management
2488:Jakarta EE
2355:2012-06-17
2287:2020-12-05
2281:Jakarta EE
2232:2012-06-17
2207:2012-06-17
2114:2012-06-17
2089:2012-06-17
2040:2012-06-17
1995:2012-06-17
1962:2012-06-17
1892:2012-06-17
1696:2016-12-15
1673:References
1519:XML schema
1447:Asynchrony
1434:Singletons
1395:annotation
1258:, but for
1068:@WebMethod
845:MANDATORY
629:concurrent
589:See also:
517:addMessage
347:@Stateless
262:Deployment
206:(JMS) and
2537:WebSocket
2443:(EJB 2.0)
2437:(EJB 2.1)
2431:(EJB 3.0)
2425:(EJB 3.1)
2419:(EJB 3.2)
1379:@Stateful
1307:package.
1301:javax.ejb
1277:@Schedule
1260:@Schedule
1252:@Schedule
1226:@Schedule
869:SUPPORTS
853:REQUIRED
781:javax.ejb
770:Execution
730:messaging
666:instance.
654:failure).
315:Hibernate
50:Java APIs
32:JavaBeans
2530:Facelets
1342:Schedule
1256:@Timeout
1230:@Timeout
1135:deployed
737:Examples
699:again...
690:Examples
683:@Startup
660:parallel
642:Examples
609:Examples
505:customer
484:customer
481:Customer
410:customer
389:customer
386:Customer
307:MuleSoft
248:Security
239:RMI-IIOP
160:security
143:back-end
2691:Related
2677:JAX-RPC
2665:Removed
2505:Servlet
2497:Web app
2435:JSR 153
2429:JSR 220
2423:JSR 318
2417:JSR 345
2412:EJB FAQ
1478:JSR 153
1463:JSR 220
1445:Simple
1408:JSR 318
1368:JSR 345
1333:method.
1181:JSR 220
1095:@DELETE
1056:JAX-RPC
1037:@Remote
962:Module
946:Global
759:trigger
726:calling
511:context
457:private
404:persist
362:private
338:Example
277:History
136:JSR 345
132:JSR 318
128:JSR 220
124:JSR 153
96:Java EE
2618:JAX-WS
2613:JAX-RS
2441:JSR 19
2333:1 June
2307:1 June
1834:1 June
1757:1 June
1534:JSR 19
1145:is an
1105:Legacy
1075:JAX-RS
1060:JAX-WS
1016:lookup
938:Scope
902:Events
885:NEVER
723:method
664:Future
634:method
570:Remote
526:return
520:(...);
472:String
469:public
442:public
436:@Named
374:public
350:public
299:Spring
237:using
231:(JNDI)
202:using
120:JSR 19
2644:Other
2525:Faces
2510:Pages
1653:Goals
1629:Goals
1590:APIs.
1567:APIs.
1430:Names
1123:class
1091:@POST
1079:@Path
906:JMS (
837:Type
800:proxy
678:@Lock
597:state
566:Local
445:class
353:class
283:CORBA
210:(JCA)
191:(JPA)
63:that
2703:JDBC
2698:JAXP
2672:JAXR
2651:JAXB
2635:JAXM
2585:Mail
2520:JSTL
2335:2016
2309:2016
1836:2016
1759:2016
1588:Java
1572:Java
1554:Java
1523:DTDs
1497:HTTP
1493:SOAP
1428:JNDI
1418:.war
1250:and
1141:The
1093:and
1087:@PUT
1083:@GET
1058:and
1052:SOAP
1050:and
1048:WSDL
1041:JVMs
822:ACID
728:and
549:@EJB
454:@EJB
377:void
256:JAAS
254:and
241:and
227:via
158:and
2708:JMX
2656:JAF
2590:JCA
2580:JTA
2575:JMS
2570:JPA
1507:JMS
1147:XML
1013:().
1007:new
912:JMS
896:JTA
807:AOP
763:JCA
732:.
295:JSR
264:of
252:JCE
118:as
108:IBM
42:EJB
2730::
2273:.
1791:^
1689:.
1608::
1544::
1540::
1536:-
1484::
1480:-
1465:-
1228:,
1089:,
1085:,
1070:.
1025:);
508:);
413:);
154:,
86:,
82:,
2480:e
2473:t
2466:v
2358:.
2337:.
2311:.
2290:.
2235:.
2210:.
2117:.
2092:.
2043:.
1998:.
1965:.
1895:.
1838:.
1761:.
1699:.
1563:.
1556:.
1509:.
1495:/
1449:(
1279:)
1254:/
1239:)
1232:)
1118:.
1019:(
1004:)
998:(
995:=
712:(
538:}
535:}
532:;
514:.
502:(
496:.
490:{
487:)
478:(
466:;
451:{
419:}
416:}
407:(
401:.
395:{
392:)
383:(
371:;
359:{
258:)
250:(
40:(
34:.
20:)
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.