Introduction. No-Interface View. Discuss this Article. April 2009

Size: px
Start display at page:

Download "Introduction. No-Interface View. Discuss this Article. April 2009"

Transcription

1 April 2009 Discuss this Article Introduction Enterprise Java Beans (EJB) is a server-side component architecture for the Java Enterprise Edition (Java EE) platform, aiming to enable rapid and simplified development for distributed, transactional, secure and portable applications. EJB experienced wide adoption in its version 2, reaching a level of maturity which made it capable to embrace the requirements of many enterprise applications. Despite its relative success, there were many critical voices accusing it of being overcomplicated. Lack of a good persistence strategy, long and tedious deployment descriptors, or limited capacity for testing, were some of the many times used arguments, causing a considerable number of developers to look for alternative technologies. Sun reacted slowly, but it was able to come up with a greatly revised version of the specification, which has considerably enhanced its potential. EJB 3 dealt with most of the existing drawbacks, presenting solutions which got consensual acceptance among the community. EJB became a viable solution again, and many teams which had once put it aside are now using it. Even though its success, EJB 3 did not go as far as it could. Going back to EJB 2.1, the spec was facing two main challenges: 1) to go through a massive restructuring in order to change existing features, like a powerful persistence framework as a substitute for Entity Beans, support for annotations as a substitute for deployment descriptors, drop of home interfaces, etc; 2) to introduce new solutions for problems not being dealt by the spec like support for Singletons, support for method interception or asynchronous calls to session beans, and to improve existing features like enhancing the Timer Service. Priority was correctly given to the restructuring- "we fist clean and rearrange the house, and only then we bring the new furniture"- even though there were some new features as well, like the support for interceptors. Now that the cleaning is done, it is time to benefit from it and to go one step beyond. EJB 3.1 introduces a new set of features which intends to leverage the potential of the technology. It is, in my opinion, a release of major importance, which brings capabilities which were most wanted since long ago, making it more able to fulfill the needs of modern enterprise applications, and contributing for an increased adoption. The EJB 3.1 Proposed Final Draft has been recently released and we are now close to its final version. This article will go through most of the new features, providing a detailed overview about each one of them. No-Interface View EJB 3.1 introduces the concept of a no-interface view, consisting of a variation of the Local view, which exposes all public methods of a bean class. Session Beans are not obliged to implement any interface anymore. The EJB container provides an implementation of a reference to a no-interface view, which allows the client to invoke any public method on the bean, and ensuring that transaction, security and interception behave as defined. All beans' public methods (including the ones defined on the superclasses) are made available through the non-interface view. A client can obtain a reference to this view by dependency injection or by JNDI lookup, just like it happens with local or remote views. Unlike local and remote views, where the reference consists of the respective local/remote business interface, the reference to a no-interface view is typed as the bean class. The following code sample demonstrates how a servlet can easily make use of a no-interface view. The client references the no-interface view as a ByeEJB, that is, using the bean class. The EJB does not implement any interface (assume no deployment descriptor is provided). Last but not least, the reference to the EJB is obtained by simple dependency injection.

2 private ByeEJB byeejb; public String saybye() { StringBuilder sb = new StringBuilder(); sb.append("<html><head>"); sb.append("<title>byebye</title>"); sb.append("</head><body>"); sb.append("<h1>" + byeejb.saybye() + "</h1>"); sb.append("</body></html>"); return sb.tostring(); ByeEJB public class ByeEJB { public String saybye() { return "Bye!"; The fact that the reference's type is the bean class imposes limitations: The client can never use the new operator to acquire the reference. An EJBException will be thrown if any method other than the public method is invoked. No assumption can be made about the internal implementation of the no-interface view. Even though the reference corresponds to the type of the bean class, there is no correspondence between the reference implementation and the bean implementation. A reference to this view can be passed as parameter/return value of any local business interface or other no-interface view methods. If the bean does not expose any local or remote views then the container must make a no-interface view available. If the bean exposes at least one local or remote view then the container does not provide a no-interface view unless explicitly requested, using the annotation LocalBean. All public methods of the bean, and its superclasses, are exposed through the no-interface view. That means any public callback methods will be exposed as well, and therefore caution must be exercised at this level. This feature will allow to avoid writing interfaces, simplifying development. It might be that the future will bring remote nointerface views. Singleton Most of the applications out there have experienced the need of having a singleton bean, that is, to have a bean that is instantiated once per application. A big number of vendors has provided support for such need, allowing the maximum number of a bean's instances to be specified in the deployment descriptor. It goes without saying that these workarounds break the "write once deploy everywhere" principle, and therefore it was up to the spec to standardize the support for such feature. EJB 3.1 is finally introducing singleton session beans. There are now three types of session beans- stateless, stateful and singleton. Singleton session beans are identified by the Singleton annotation and are instantiated once per application. The existing instance is shared by clients and supports concurrent access. The life of a singleton bean starts whenever the container performs its instantiation (by instantiation it is meant instantiation, dependency injection and execution of PostConstruct callbacks). By default the container is responsible for deciding whenever a singleton bean is created, but the developer can instruct the container to initialize the bean during application startup, using the Startup annotation. Moreover, the Startup annotation permits defining dependencies on other singleton beans. The container must initialize all startup singletons before starting to deliver any client requests. The following example provides an overview about how dependencies work. The instantiation of singleton A is decided by the container as it does not contain the Startup annotation and no other singleton depends on it. Singleton B is instantiated during application startup and before singleton D and singleton E (E depends on D which depends on B). Even though singleton B does not have the Startup annotation, there are other singletons which have it and that depend on it. Singleton C is instantiated during application startup, before singleton E, and so does singleton D. Finally, singleton E will be the last one to be instantiated during the application startup.

3 public class A { public class B public class C public class D "D") public class E { Note that the order defined on a multiple dependency is not considered at runtime. For example, the fact that E depends on C and D does not mean that C will be instantiated before D. Should that be the case then D must have a dependency on C. A singleton can define a startup dependency on a singleton that exists on another module. The container is responsible for destroying all singletons during application shutdown by executing their PreDestroy callbacks. The startup dependencies are considered during this process, that is, if A depends on B then B will still be available whenever A is destroyed. A singleton bean maintains state between client invocations, but this state does not survive application shutdown or container crashes. In order to deal with concurrent client invocations the developer must define a concurrency strategy. The spec defines two approaches: Container-managed concurrency (CMC)- the container manages the access to the bean instance. This is the default strategy. Bean-managed concurrency (BMC)- the container takes no intervention in managing concurrency, allowing concurrent access to the bean, and deferring client invocation synchronization to the developer. With BMCs it is legal to use synchronization primitives like synchronized and volatile in order to coordinate multiple threads from different clients. Most of the times CMC will be the choice. The container manages concurrency using locking metadata. Each method is associated to a read or a write lock. A read lock indicates that the method can be accessed by many concurrent invocations. A write lock indicates that the method can only be invoked by one client at a time. By default the value of the locking attribute is write. This can be changed by using the Lock annotation, which can be applied to a class, a business interface, or to a method. As usual, the value defined at the class level applies to all relevant methods unless a method has its own annotation. Whenever a method with write locking has concurrent accesses, the container allows one of them to execute it and holds the other ones until the method becomes available. The clients on hold will wait indefinitely, unless the AccessTimeout annotation is used, which allows to define a maximum time (in milliseconds) that a client will wait, throwing a ConcurrentAccessTimeoutException as soon as the timeout is reached. Following is presented a number of examples, illustrating the use of CMC singleton beans. Singleton A is explicitly defined as a CMC, even though it is not necessary because that is the default concurrency strategy. Singleton B does not define any concurrency strategy, which means that it is a CMC, and defines that the exposed methods make use of write locks. Like it happens with singleton A, singleton B would not need the use of the Lock annotation because by default all CMCs use a write lock. Singleton C uses read locks for all methods. The same for singleton D, with the difference that the method saybye will have a write lock. Finally, singleton E makes use of write locks to all relevant methods, and any blocked client will get a ConcurrentAccessTimeoutException after being on hold for 10 public class A public class B {

4 @Lock(READ) public class C public class D public String saybye() public class E { In case of clustering, there will be an instance of the singleton per every JVM where the application gets deployed. Up to EJB 3, any system exception thrown by an EJB would cause the respective instance to be discarded. That does not apply to singleton beans, because they must remain active until the shutdown of the application. Therefore any system exception thrown on a business method or on a callback does not cause the instance to to be destroyed. Like it happens with stateless beans, singletons can be exposed as web services. Asynchronous Invocations Asynchronous invocations of session beans methods is one of the most important new features. It can be used with all types of session beans and from all bean views. The spec defines that with asynchronous invocations the control must return to the client before the container dispatches the invocation to the bean instance. This takes the use of session beans into a whole new level, permitting the developer to take benefit from the potential of having asynchronous invocations to session beans, allowing a client to trigger parallel processing flows. An asynchronous method is signaled through the Asynchronous annotation, which can be applied to a method or to a class. The following examples illustrate different use cases of the annotation. Bean A makes all its business methods asynchronous. Singleton B defines the method flushbye as asynchronous. For stateless C all methods invoked by its local interface Clocal are asynchronously invoked, but if invoked through the remote interface then they are synchronously invoked. Therefore the invocation of the same method behaves differently depending on the used interface. Last, for bean D the method flushbye is invoked asynchronously whenever invoked through the bean's local interface. public class A { public class B { public void flushbye() { public class C implements CLocal, CRemote { public void flushbye() public interface CLocal { public void public interface CRemote { public void flushbye(); public class D implements DLocal {

5 @Local public interface DLocal { public void flushbye(); The return type of an asynchronous method must be void or Future<V>, being V the result value type. If void is used then the method cannot declare any application exception. The interface Future was introduced with Java 5 and provides four methods: cancel(boolean mayinterruptifrunning)- attempts to cancel the execution of the asynchronous method. The container will attempt to cancel the invocation if it has not yet been dispatched. Should the cancellation be successful the method returns true, false otherwise.themayinterruptifrunningflagcontrolswhether, inthecasethattheasynchronousinvocation cannotbecanceled, the target bean should have visibility to the client's cancel attempt. get- returns the method's result whenever it gets complete. This method has two overloaded versions, one that blocks until the method completes, another which takes a timeout as parameter. iscancelled- indicates if the method was cancelled. isdone- indicates if the method was completed successfully. The spec mandates that the container provides the class AsyncResult<V>, consisting of an implementation of the interface Future<V> which takes the result value as constructor's parameter. public Future<String> saybye() { String bye = executelongquery(); return new AsyncResult<String>(bye); The use of the Future<V> return type has only to be visible from the point of view of the client. So if method m is only defined as asynchronous on an interface then only the method declaration in the interface must return Future<V>, the one in the bean class (and in any other business interface) can define V as return type. public class ByeEJB implements ByeLocal, ByeRemote { public String saybye() public interface saybye { public Future<String> public interface ByeRemote { public String saybye(); The SessionContext interface has been enhanced with the method wascancelcalled, which returns true if the method Future.cancel was invoked by the client, setting the parameter mayinterruptifrunning as SessionContext ctx; public Future<String> saybye() { String bye = executefirstlongquery(); if (!ctx.wascancelcalled()){ bye += executesecondlongquery(); return new AsyncResult<String>(bye); Note that the method get of the interface Future declares ExecutionException in its throws clause. If the asynchronous method throws an application exception then this exception will get propagated to the client via an ExecutionException. The original exception is available by invoking the method getcause.

6 public class ByeEJB implements ByeLocal { public String saybye() throws MyException { throw new public interface ByeLocal { public Future<String> saybye(); //Client public class ClientEJB ByeLocal byeejb; public void invokesaybye() { try { Future<String> futstr = byeejb.saybye(); catch(executionexception ee) { String originalmsg = ee.getcause().getmessage(); System.out.println("Original error message:" + originalmsg); The client transaction context does not get propagated into the asynchronous method execution. Therefore one can conclude that whenever an asynchronous method m gets invoked: If m is defined with REQUIRED as transaction attribute then it will always work as REQUIRES_NEW. If m is defined with MANDATORY as transaction attribute then it will always throw a TransactionRequiredException. If m is defined with SUPPORTS as transaction attribute then it will never run with a transaction context. In terms of security the propagation of the principal takes place in the same exact way than it does for synchronous methods. Global JNDI names This feature was long waited, and has finally seen the light of the day with EJB 3.1. The assignment of global JNDI names to EJBs was always implemented in a vendor-specific way, being source of many issues. The same application deployed in containers from different vendors is likely to get its session beans assigned with different JNDI names, causing problems on the client side. Additionally, with the support for EJB 3 some vendors made business local interfaces available on the global JNDI tree, while others have filtered them out, causing problems as well. The spec now defines global JNDI names, by which session beans are required to be registered. In other words, we finally have portable JNDI names. Each portable global JNDI name has the following syntax: java:global[/<app-name>]/<module-name>/<bean-name>[!<fully-qualified-interface-name>] The following table describes the different components: Component Description Mandatory app-name Name of the application where the bean gets packaged. Defaults to the name of the ear (without extension) unless specified in the file application.xml module-name Name of the module where the bean gets packaged. Defaults to the name of the bundle file (without extension) unless specified in the file ejb-jar.xml bean-name Name of the bean. Defaults to the unqualified name of the session bean class, unless specified on the name attribute of the annotation Stateless/Stateful/Singleton or in the deployment descriptor. N Y Y

7 Fullyqualifiedinterfacename Qualified name for the exposed interface. In case of a no-interface view it consists of the fully qualified name of the bean class. Y If a bean exposes just one client view then the container must make that view available not only on the JNDI name presented before but also on the following location: java:global[/<app-name>]/<module-name>/<bean-name> The container is also required to make the JNDI names available on the java;app and java:module namespaces, in order to simplify the access from clients in the same module and/or application: java:app[/<module-name>]/<bean-name>[!<fully-qualified-interface-name>] java:module/<bean-name>[!<fully-qualified-interface-name>] java:app is used by clients executing in the same application than the target bean. The module name is optional for standalone modules. java:module is used by clients execution in the same module than the target bean. Example1: Packaged in mybeans.jar within myapp.ear without deployment descriptors package com.pt.xyz; public class BeanA { BeanA has a no-interface view available with the following JNDI names: - java:global/myapp/mybeans/beana - java:global/myapp/mybeans/beana!com.pt.xyz.beana - java:app/mybeans/beana - java:app/mybeans/beana!com.pt.xyz.beana - java:module/beana - java:module/beana!com.pt.xyz.beana Example2: Packaged in mybeans.jar without deployment descriptors package com.pt.xyz; (name="mybeanb") public class BeanB implements BLocal, BRemote { package public interface BLocal { package public interface BRemote { BLocal will be available with the following JNDI names: - java:global/mybeans/mybeanb!com.pt.xyz.blocal - java:app/mybeanb!com.pt.xyz.blocal - java:module/mybeanb!com.pt.xyz.blocal BRemote will be available with the following JNDI names: - java:global/mybeans/mybeanb!com.pt.abc.bremote - java:app/mybeanb!com.pt.abc.bremote - java:module/mybeanb!com.pt.abc.bremote

8 Timer-Service A significant number of enterprise applications have some sort of time-driven requirements. For a long time the spec has ignored such needs, forcing developers to find non-standard solutions like Quartz or Flux. EJB 2.1 introduced the Timer Service, consisting of a service provided by the container that allows EJBs to have timer callbacks being invoked at specified times. Moreover, such invocations can be done in a transactional context. Even though the Timer Service was able to bridge some of the necessities, there were considerable limitations, like for example: All timers have to be created programatically. Lack of flexibility in the scheduling of timers. Missing support for the use of timers in environments with multiple JVMs like clustering. With EJB 3.1 there are two ways to create timers: Programatically, using the already existing TimerService interfaces. This interface has been greatly enhanced in order to provide more flexibility while creating timers. Declaratively, using annotations or the deployment descriptor. This way a timer can be statically defined so it is automatically created during application startup. The annotation Schedule is used to automatically create a timer, taking as parameter the corresponding timeout schedule. It is applied to a method which will be used as timeout callback. While with programatically created timers the timeout method is the same for all timers belonging to the same bean (ejbtimeout if the bean implements the TimedObject interface, method annotated with Timeout otherwise), for declaratively created timers the timeout method is the one where the Schedule annotation is applied to. In the following example two timers are defined, one which expires every Monday at midnight and another one which expires every last day of the month. The first annotates the method itismonday, which is the method that will get executed at the timer's expiration time. The second one annotates the method itisendofmonth, which works as timeout callback for that timer. public class TimerEJB public void itismonday(timer timer) public void itisendofmonth(timer timer) { A method can be annotated with more than one timer, like shown below, where two timers are defined for the method mealtime, one which will expire every day at 1pm and another expiring at 8pm. public class MealEJB { public void mealtime(timer timer) { Both automatic or programatically created timers can now be persistent (default) or non-persistent. Non-persistent timers do not survive an application shutdown or container crashes. They can be defined using the attribute persistent of the annotation, or the class TimerConfig passed as parameter to the method createtimer in the TimerService interface. The interface Timer has been enhanced in order to include the method ispersistent. Each Schedule annotation for persistent timers corresponds to a single timer, regardless the number of JVMs across which the application is distributed. This has a tremendous impact on the way timers are used in clustered environments. Lets assume that an application needs to keep an active timer pointing to the next active event. This timer gets updated as soon as new events are submitted. Before EJB 3.1 this would be quite easy to achieve by using the Timer Service, unless the application got deployed in a container distributed in more that one JVM. In that case, whenever a timer got created in one JVM it would not visible in the remaining JVMs. That means that it must have been adopted a strategy which allows the existing timers to be visible in all JVMs. The code becomes aware of the environment where it gets deployed, which leads to bad practices. With EJB 3.1 the developer does not have to care if the application being developed is going to be deployed across multiple

9 JVMs, such task is left up to the container. An automatically created non-persistent timer gets a new timer created for each JVM across which the container is deployed. The signature of the timeout callback method can be one of two options- void <METHOD> (Timer timer) or void <METHOD> (). In terms of timer scheduling there were major improvements. The callback schedule can be expressed using a calendar-based syntax modeled after the UNIX cron. There are eight attributes which can be used in such expressions: Attribute Allowable Values Example second [0, 59] second = "10" minute [0, 59] minute = "30" hour [0, 23] hour = "10" dayofmonth - [1, 31] - day of the month dayofmonth = "3" month - Last - last day of the month - -[1, 7] - number of days before end of month - {"1st", "2nd", "3rd", "4th", "5th",..., "Last" {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"- identifies a single occurrence of a day of the month - [1, 12] - month of the year dayofmonth = "Last" dayofmonth = "-5" dayofmonth = "1st Tue" month = "7" - {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"- month name dayofweek - [0, 7]- day of the week where both 0 and 7 refer to Sunday month = "Jan" dayofweek = "5" - {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"- day's name The values provided for each attribute can be expressed in different forms: dayofweek = "Wed" year Four digit calendar year year = "1978" timezone Id of the related timezone timezone = "America/New_York" Expression Type Description Example Single Value Constraints the attribute to just one value dayofweek = "Wed" Wild Card List Range Increments Represents all possible values for a given attribute Constraints the attribute to two or more allowable values, separated by a comma Constraints the attribute to an inclusive range of values Defines an expression x/y where the attribute is constrained to every yth value within the set of allowable values, beginning at time x. month = "*" DayOfMonth = "3,10,23" dayofweek = "Wed,Sun" year = " " second = "*/10" - every 10 seconds hour = "12/2"- every second hour starting at noon Every Tuesday at = "7", minute = "30", dayofweek = "Tue")

10 From Monday to Friday, at 7, 15 and = "7, 15, 20", dayofweek = "Mon-Fri") Every hour on = "*", dayofweek = "0") Last Friday of December, at = "12", dayofmonth = "Last Fri", month="dec") Three days before the last day of the month, for every month of 2009, at = "20", dayofmonth = "-3", year="2009") Every 5 minutes of every hour, starting at = "*/5", hour = "15/1") The TimerService interface has been enhanced in order to allow programatically created timers to make use of cron alike expressions. Such expressions can be represented by an instance of the class ScheduleExpression, which can be passed as parameter during the timer creation. EJB Lite An EJB container which is compliant with the specification must make available a set of APIs. This set is now divided in two categories- minimum and complete. The minimum set is designated as EJB 3.1 Lite, and provides a subset of features which can be used by applications (EJB 3.1 Lite applications) which do not need the full range of APIs provided by the spec. This brings several advantages: Increases the performance. By reducing the number of APIs the container becomes lighter and therefore can provide its services in a more performant way. Facilitates the learning curve. Learning how to be an EJB developer is not a simple task, forcing developers to learn an extensive number of matters. In order to develop EJB Lite applications, developers will now have to deal with a smaller and easier learning curve, increasing their productivity. Reduces licensing cost. A complain that is often heard is the fact that the container's license price is the same regardless the number of APIs the application uses. An application having few simple stateless beans runs on the same container than an application making full use of all EJB APIs, and therefore gets charged with similar licensing fees. By having EJB Complete and EJB Lite versions, vendors can introduce different licensing prices. An application can now pay for what it really uses. EJB 3.1 Lite includes the following features: Stateless, stateful and singleton session beans. Only local and no-interface views and only synchronous invocations. Container-Managed Transactions and Bean-Managed Transactions. Declarative and programmatic security. Interceptors. Deployment descriptors. Simplified EJB Packaging An ejb-jar file is a module intended to package enterprise beans. Before EJB 3.1 all beans had to be packaged in such file. Since a considerable part of all Java EE applications is composed by a web front-end and a EJB back-end it means that the ear containing the application will have to be composed by two modules, a war and an ejb-jar. This is a good practice in the sense that structures the separation between front-end and back-end. But it is too much for simple applications.

11 EJB 3.1 allows enterprise beans to be packaged in a war file. The classes can be included in the WEB-INF/classes directory or in a jar file within WEB-INF/lib. A war can contain at most one ejb-jar.xml, which can be located in WEB-INF/ejb.jar.xml or in META-INF/ejb-jar.xml in a WEB-INF/lib jar file. It must be stressed that this simplified packaging should only be utilized in simple applications. Otherwise it should still be used the traditional approach with war and ejb-jar files. Embeddable EJB Containers EJBs are traditionally associated to heavy Java EE containers, making it difficult to use them in certain contexts: It is hard to unit test beans. A simple standalone batch process cannot benefit from the use of EJBs unless there is a Java EE container providing the necessary services. Complicates the use of EJBs in desktop applications. One of the EJB 3.1 most significant features consists of the support for embeddable containers. A Java SE client can now instantiate an EJB container that runs within its own JVM and classloader. The embeddable container provides a set of basic services which allows the client to benefit from the use of EJBs without requiring a Java EE container.

12 The embeddable container scans the classpath in order to find EJB modules. There are two ways to qualify as an EJB module: An ejb-jar file. A directory containing a META-INF/ejb-jar.xml file or at least one class annotated as an enterprise bean. The environment where a bean gets executed is totally transparent, that is, the same bean runs the same exact way on an embeddable container or in a Java EE standalone container, no change in the code is required. An embeddable container ought to support the EJB 3.1 Lite subset of APIs. Vendors are free to extend such support and to include all EJB 3.1 APIs. The class EJBContainer plays a central role in the use of embeddable containers. Provides a static method createejbcontainer which allows to instantiate a new container. Provides the method close which triggers the shutdown of the container, causing all PreDestroy callbacks to be executed. Last but not least, it provides the method getcontext which returns a naming context that allows the client to lookup references to session beans deployed in the embeddable public class ByeEJB { private Logger public void initbyeejb() { log.info("byeejb is being initialized..."); public String saybye() { log.info("byeejb is saying bye..."); return public void destroybyeejb() { log.info("byeejb is being destroyed..."); public class Client { private Logger log; public static void main(string args[]) { log.info("starting client..."); EJBContainer ec = EJBContainer.createEJBContainer(); log.info("container created..."); Context ctx = ec.getcontext(); //Gets the no-interface view ByeEJB byeejb = ctx.lookup("java:global/bye/byeejb"); String msg = byeejb.saybye(); log.info("got the following message: " + msg); ec.close(); log.info("finishing client..."); Log output Starting client... ByeEJB is being initialized... Container created... ByeEJB is saying bye... Got the following message: Bye! ByeEJB is being destroyed... Finishing client... Best of the Rest Besides the big new features, there are few minor improvements which simplify or leverage existing functionalities. From those, the following are the most relevant: A stateful can now use the annotations AfterBegin, BeforeCompletion and AfterCompletion instead of implementing the

13 SessionSynchronization interface. It can now be specified a timeout for a stateful bean, which consists of the amount of time a stateful bean can remain idle before being removed by the container. The StatefulTimeout annotation was created for such effect. A container is required to serialize invocations to stateless and stateful beans. By default, it is allowed to have concurrent calls to stateful beans, and it is up to the container to serialize them. The developer can now use the ConcurrencyManagement(CONCURRENCY_NOT_ALLOWED) annotation in order to indicate that a stateful bean does not support concurrent requests. In that case, whenever a stateful bean is processing a client invocation, and a second one arrives (from the same client or from a different one), the second invocation will get a ConcurrentAccessException. The annotation AroundTimeout can be used to define interceptor methods for timer's timeout methods. Conclusions Java EE 6 is now about to be finalized, and most of the technologies which exist in its universe are getting close to their final versions, and fulfilling almost all expectations will definitely be a strong year for Java EE. Few of the most exciting new features are coming with EJB 3.1. EJB 3.1 provides architects and developers with a rich set of new functionalities, allowing to extend the number of design and implementation challenges that can be covered by the technology. This release is very mature and complete, and will make the position of Java on the server side more solid than ever. Since the technology is getting more and more complete, it is getting harder to come with missing features. Here are few ideas which can be used in next releases: Support for specifying the minimum and maximum number of instances for a certain bean. Support for application life cycle classes which handle events like pre-start, post-start, pre-stop and post-stop. Enhance JMS in order to support features which are popular among messaging systems like message grouping and message ordering. Support for JAX-RS. We ought to congratulate the team working on this spec, which has put a tremendous effort, achieving a high quality result. About the Author Paulo Moreira is a Portuguese freelance Software Engineer, currently working for Clearstream, in Luxembourg. Graduated from University of Minho with a Master Degree in Computer Science and Systems Engineering, he has been working with Java on the server side since 2001, in the telecom, retail, software and financial markets. PRINTER FRIENDLY VERSION

Enterprise JavaBeans EJB component types

Enterprise JavaBeans EJB component types Enterprise JavaBeans EJB component types Recommended book Introduction to EJB 3 EJB 3.1 component example package examples; import javax.ejb.stateless; @Stateless public class HelloBean { public String

More information

V3 EJB Test One Pager

V3 EJB Test One Pager V3 EJB Test One Pager Overview 1. Introduction 2. EJB Testing Scenarios 2.1 EJB Lite Features 2.2 API only in Full EJB3.1 3. Document Review 4. Reference documents 1. Introduction This document describes

More information

ENTERPRISE JAVABEANS TM (EJB TM ) 3.1 TECHNOLOGY

ENTERPRISE JAVABEANS TM (EJB TM ) 3.1 TECHNOLOGY ENTERPRISE JAVABEANS TM (EJB TM ) 3.1 TECHNOLOGY Kenneth Saks Senior Staff Engineer SUN Microsystems TS-5343 Learn what is planned for the next version of Enterprise JavaBeans (EJB ) technology 2008 JavaOne

More information

New Features in EJB 3.1

New Features in EJB 3.1 New Features in EJB 3.1 Sangeetha S E-Commerce Research Labs, Infosys Technologies Limited 2010 Infosys Technologies Limited Agenda New Features in EJB 3.1 No Interface View EJB Components in WAR Singleton

More information

OCP JavaEE 6 EJB Developer Study Notes

OCP JavaEE 6 EJB Developer Study Notes OCP JavaEE 6 EJB Developer Study Notes by Ivan A Krizsan Version: April 8, 2012 Copyright 2010-2012 Ivan A Krizsan. All Rights Reserved. 1 Table of Contents Table of Contents... 2 Purpose... 9 Structure...

More information

Stateful Session Beans

Stateful Session Beans Berner Fachhochschule Technik und Informatik Stateful Session Beans Course Multi Tier Business Applications with Java EE Prof. Dr. Eric Dubuis Berner Fachhochschule Biel Content Characteristics of stateful

More information

Exam Actual. Higher Quality. Better Service! QUESTION & ANSWER

Exam Actual. Higher Quality. Better Service! QUESTION & ANSWER Higher Quality Better Service! Exam Actual QUESTION & ANSWER Accurate study guides, High passing rate! Exam Actual provides update free of charge in one year! http://www.examactual.com Exam : 310-090 Title

More information

ITdumpsFree. Get free valid exam dumps and pass your exam test with confidence

ITdumpsFree.  Get free valid exam dumps and pass your exam test with confidence ITdumpsFree http://www.itdumpsfree.com Get free valid exam dumps and pass your exam test with confidence Exam : 310-090 Title : Sun Certified Business Component Developer for J2EE 1.3 Vendors : SUN Version

More information

Java EE 6 - Update Harpreet Singh GlassFish Portfolio Product Manager

Java EE 6 - Update Harpreet Singh GlassFish Portfolio Product Manager Java EE 6 - Update Harpreet Singh GlassFish Portfolio Product Manager Sun Microsystems 1 The Elephant In The Room 2 Here's what I can... Show Say 3 Business As Usual 4 Business As Usual = Participate in

More information

NetBeans IDE Field Guide

NetBeans IDE Field Guide NetBeans IDE Field Guide Copyright 2005 Sun Microsystems, Inc. All rights reserved. Table of Contents Extending Web Applications with Business Logic: Introducing EJB Components...1 EJB Project type Wizards...2

More information

Java EE 6: Develop Business Components with JMS & EJBs

Java EE 6: Develop Business Components with JMS & EJBs Oracle University Contact Us: + 38516306373 Java EE 6: Develop Business Components with JMS & EJBs Duration: 4 Days What you will learn This Java EE 6: Develop Business Components with JMS & EJBs training

More information

Chapter 1 Introducing EJB 1. What is Java EE Introduction to EJB...5 Need of EJB...6 Types of Enterprise Beans...7

Chapter 1 Introducing EJB 1. What is Java EE Introduction to EJB...5 Need of EJB...6 Types of Enterprise Beans...7 CONTENTS Chapter 1 Introducing EJB 1 What is Java EE 5...2 Java EE 5 Components... 2 Java EE 5 Clients... 4 Java EE 5 Containers...4 Introduction to EJB...5 Need of EJB...6 Types of Enterprise Beans...7

More information

Web Application Development Using JEE, Enterprise JavaBeans and JPA

Web Application Development Using JEE, Enterprise JavaBeans and JPA Web Application Development Using JEE, Enterprise Java and JPA Duration: 35 hours Price: $750 Delivery Option: Attend training via an on-demand, self-paced platform paired with personal instructor facilitation.

More information

Exam Questions 1Z0-895

Exam Questions 1Z0-895 Exam Questions 1Z0-895 Java Platform, Enterprise Edition 6 Enterprise JavaBeans Developer Certified Expert Exam https://www.2passeasy.com/dumps/1z0-895/ QUESTION NO: 1 A developer needs to deliver a large-scale

More information

Java EE 7: Back-End Server Application Development

Java EE 7: Back-End Server Application Development Oracle University Contact Us: Local: 0845 777 7 711 Intl: +44 845 777 7 711 Java EE 7: Back-End Server Application Development Duration: 5 Days What you will learn The Java EE 7: Back-End Server Application

More information

Java- EE Web Application Development with Enterprise JavaBeans and Web Services

Java- EE Web Application Development with Enterprise JavaBeans and Web Services Java- EE Web Application Development with Enterprise JavaBeans and Web Services Duration:60 HOURS Price: INR 8000 SAVE NOW! INR 7000 until December 1, 2011 Students Will Learn How to write Session, Message-Driven

More information

133 July 23, :01 pm

133 July 23, :01 pm Protocol Between a Message-Driven Bean Instance and its ContainerEnterprise JavaBeans 3.2, Public Draft Message-Driven Bean When a message-driven bean using bean-managed transaction demarcation uses the

More information

EJB ENTERPRISE JAVA BEANS INTRODUCTION TO ENTERPRISE JAVA BEANS, JAVA'S SERVER SIDE COMPONENT TECHNOLOGY. EJB Enterprise Java

EJB ENTERPRISE JAVA BEANS INTRODUCTION TO ENTERPRISE JAVA BEANS, JAVA'S SERVER SIDE COMPONENT TECHNOLOGY. EJB Enterprise Java EJB Enterprise Java EJB Beans ENTERPRISE JAVA BEANS INTRODUCTION TO ENTERPRISE JAVA BEANS, JAVA'S SERVER SIDE COMPONENT TECHNOLOGY Peter R. Egli 1/23 Contents 1. What is a bean? 2. Why EJB? 3. Evolution

More information

IBM. Enterprise Application Development with IBM Web Sphere Studio, V5.0

IBM. Enterprise Application Development with IBM Web Sphere Studio, V5.0 IBM 000-287 Enterprise Application Development with IBM Web Sphere Studio, V5.0 Download Full Version : http://killexams.com/pass4sure/exam-detail/000-287 QUESTION: 90 Which of the following statements

More information

Web Application Development Using JEE, Enterprise JavaBeans and JPA

Web Application Development Using JEE, Enterprise JavaBeans and JPA Web Application Development Using JEE, Enterprise Java and JPA Duration: 5 days Price: $2795 *California residents and government employees call for pricing. Discounts: We offer multiple discount options.

More information

Oracle EXAM - 1Z Java EE 6 Enterprise JavaBeans Developer Certified Expert Exam. Buy Full Product.

Oracle EXAM - 1Z Java EE 6 Enterprise JavaBeans Developer Certified Expert Exam. Buy Full Product. Oracle EXAM - 1Z0-895 Java EE 6 Enterprise JavaBeans Developer Certified Expert Exam Buy Full Product http://www.examskey.com/1z0-895.html Examskey Oracle 1Z0-895 exam demo product is here for you to test

More information

Developing Enterprise JavaBeans for Oracle WebLogic Server 12c (12.2.1)

Developing Enterprise JavaBeans for Oracle WebLogic Server 12c (12.2.1) [1]Oracle Fusion Middleware Developing Enterprise JavaBeans for Oracle WebLogic Server 12c (12.2.1) E55232-02 October 2015 This document is a resource for software developers who develop applications that

More information

"Charting the Course... Mastering EJB 3.0 Applications. Course Summary

Charting the Course... Mastering EJB 3.0 Applications. Course Summary Course Summary Description Our training is technology centric. Although a specific application server product will be used throughout the course, the comprehensive labs and lessons geared towards teaching

More information

Writing Portable Applications for J2EE. Pete Heist Compoze Software, Inc.

Writing Portable Applications for J2EE. Pete Heist Compoze Software, Inc. Writing Portable Applications for J2EE Pete Heist Compoze Software, Inc. Overview Compoze Business Aspects of Portability J2EE Compatibility Test Suite Abstracting out Vendor Specific Code Bootstrapping

More information

CO Java EE 7: Back-End Server Application Development

CO Java EE 7: Back-End Server Application Development CO-85116 Java EE 7: Back-End Server Application Development Summary Duration 5 Days Audience Application Developers, Developers, J2EE Developers, Java Developers and System Integrators Level Professional

More information

JVA-163. Enterprise JavaBeans

JVA-163. Enterprise JavaBeans JVA-163. Enterprise JavaBeans Version 3.0.2 This course gives the experienced Java developer a thorough grounding in Enterprise JavaBeans -- the Java EE standard for scalable, secure, and transactional

More information

1 Markus Eisele, Insurance - Strategic IT-Architecture

1 Markus Eisele, Insurance - Strategic IT-Architecture 1 Agenda 1. Java EE Past, Present and Future 2. Java EE 7 Platform as a Service 3. PaaS Roadmap 4. Focus Areas 5. All the Specs 2 http://blog.eisele.net http://twitter.com/myfear markus.eisele@msg-systems.com

More information

Fast Track to EJB 3.0 and the JPA Using JBoss

Fast Track to EJB 3.0 and the JPA Using JBoss Fast Track to EJB 3.0 and the JPA Using JBoss The Enterprise JavaBeans 3.0 specification is a deep overhaul of the EJB specification that is intended to improve the EJB architecture by reducing its complexity

More information

Java Enterprise Edition

Java Enterprise Edition Java Enterprise Edition The Big Problem Enterprise Architecture: Critical, large-scale systems Performance Millions of requests per day Concurrency Thousands of users Transactions Large amounts of data

More information

Java EE Architecture, Part Two. Java EE architecture, part two 1

Java EE Architecture, Part Two. Java EE architecture, part two 1 Java EE Architecture, Part Two Java EE architecture, part two 1 Content Requirements on the Business layer Framework Independent Patterns Transactions Frameworks for the Business layer Java EE architecture,

More information

Deccansoft Software Services. J2EE Syllabus

Deccansoft Software Services. J2EE Syllabus Overview: Java is a language and J2EE is a platform which implements java language. J2EE standard for Java 2 Enterprise Edition. Core Java and advanced java are the standard editions of java whereas J2EE

More information

UNIT-III EJB APPLICATIONS

UNIT-III EJB APPLICATIONS UNIT-III EJB APPLICATIONS CONTENTS EJB Session Beans EJB entity beans EJB clients EJB Deployment Building an application with EJB. EJB Types Types of Enterprise Beans Session beans: Also called business

More information

Java SE7 Fundamentals

Java SE7 Fundamentals Java SE7 Fundamentals Introducing the Java Technology Relating Java with other languages Showing how to download, install, and configure the Java environment on a Windows system. Describing the various

More information

Payflow Implementer's Guide FAQs

Payflow Implementer's Guide FAQs Payflow Implementer's Guide FAQs FS-PF-FAQ-UG-201702--R016.00 Fairsail 2017. All rights reserved. This document contains information proprietary to Fairsail and may not be reproduced, disclosed, or used

More information

The Next Generation. Prabhat Jha Principal Engineer

The Next Generation. Prabhat Jha Principal Engineer The Next Generation Prabhat Jha Principal Engineer What do you wish you had in an Open Source JEE Application Server? Faster Startup Time? Lighter Memory Footprint? Easier Administration? 7 Reasons To

More information

Oracle Corporation

Oracle Corporation 1 2012 Oracle Corporation Exploring Java EE 6 and WebLogic 12c Arun Gupta blogs.oracle.com/arungupta, @arungupta 2 2012 Oracle Corporation The following is intended to outline our general product direction.

More information

Fun with EJB and OpenEJB. David #OpenEJB

Fun with EJB and OpenEJB. David #OpenEJB Fun with EJB and OpenEJB David Blevins @dblevins #OpenEJB The Basics - History Timeline 1999 - Founded in Exoffice - EJB 1.1 level 2001 - Integrated in Apple s WebObjects 2002 - Moved to SourceForge 2003

More information

Example schedule-expression can be browsed at

Example schedule-expression can be browsed at Schedule Expression Example schedule-expression can be browsed at https://github.com/apache/tomee/tree/master/examples/schedule-expression In this example we exercise the TimerService. NOTE "The TimerService

More information

Courses For Event Java Advanced Summer Training 2018

Courses For Event Java Advanced Summer Training 2018 Courses For Event Java Advanced Summer Training 2018 Java Fundamentals Oracle Java SE 8 Advanced Java Training Java Advanced Expert Edition Topics For Java Fundamentals Variables Data Types Operators Part

More information

RealVCE. Free VCE Exam Simulator, Real Exam Dumps File Download

RealVCE.   Free VCE Exam Simulator, Real Exam Dumps File Download RealVCE http://www.realvce.com Free VCE Exam Simulator, Real Exam Dumps File Download Exam : 1z0-895 Title : Java Platform, Enterprise Edition 6 Enterprise JavaBeans Developer Certified Expert Exam Vendor

More information

J2EE - Version: 25. Developing Enterprise Applications with J2EE Enterprise Technologies

J2EE - Version: 25. Developing Enterprise Applications with J2EE Enterprise Technologies J2EE - Version: 25 Developing Enterprise Applications with J2EE Enterprise Technologies Developing Enterprise Applications with J2EE Enterprise Technologies J2EE - Version: 25 5 days Course Description:

More information

Spring & Hibernate. Knowledge of database. And basic Knowledge of web application development. Module 1: Spring Basics

Spring & Hibernate. Knowledge of database. And basic Knowledge of web application development. Module 1: Spring Basics Spring & Hibernate Overview: The spring framework is an application framework that provides a lightweight container that supports the creation of simple-to-complex components in a non-invasive fashion.

More information

ΠΙΝΑΚΑΣ ΠΛΑΝΟΥ ΕΚΠΑΙΔΕΥΣΗΣ

ΠΙΝΑΚΑΣ ΠΛΑΝΟΥ ΕΚΠΑΙΔΕΥΣΗΣ ΠΑΡΑΡΤΗΜΑ «Β» ΠΙΝΑΚΑΣ ΠΛΑΝΟΥ ΕΚΠΑΙΔΕΥΣΗΣ Α/Α ΠΕΡΙΓΡΑΦΗ ΕΚΠΑΙΔΕΥΣΗΣ ΘΕΜΑΤΙΚΕΣ ΕΝΟΤΗΤΕΣ 1. Java SE8 Fundamentals What Is a Java Program? Introduction to Computer Programs Key Features of the Java Language

More information

Introduction to Web Application Development Using JEE, Frameworks, Web Services and AJAX

Introduction to Web Application Development Using JEE, Frameworks, Web Services and AJAX Introduction to Web Application Development Using JEE, Frameworks, Web Services and AJAX Duration: 5 Days US Price: $2795 UK Price: 1,995 *Prices are subject to VAT CA Price: CDN$3,275 *Prices are subject

More information

Spring Framework 5.0 on JDK 8 & 9

Spring Framework 5.0 on JDK 8 & 9 Spring Framework 5.0 on JDK 8 & 9 Juergen Hoeller Spring Framework Lead Pivotal 1 Spring Framework 5.0 (Overview) 5.0 GA as of September 28 th, 2017 one week after JDK 9 GA! Embracing JDK 9 as well as

More information

presentation DAD Distributed Applications Development Cristian Toma

presentation DAD Distributed Applications Development Cristian Toma Lecture 12 S4 - Core Distributed Middleware Programming in JEE Distributed Development of Business Logic Layer presentation DAD Distributed Applications Development Cristian Toma D.I.C.E/D.E.I.C Department

More information

Vendor: Oracle. Exam Code: 1Z Exam Name: Java Platform, Enterprise Edition 6 Enterprise JavaBeans Developer Certified Expert Exam.

Vendor: Oracle. Exam Code: 1Z Exam Name: Java Platform, Enterprise Edition 6 Enterprise JavaBeans Developer Certified Expert Exam. Vendor: Oracle Exam Code: 1Z0-895 Exam Name: Java Platform, Enterprise Edition 6 Enterprise JavaBeans Developer Certified Expert Exam Version: Demo QUESTION 1 A developer needs to deliver a large-scale

More information

The 1st Java professional open source Convention Israel 2006

The 1st Java professional open source Convention Israel 2006 The 1st Java professional open source Convention Israel 2006 The Next Generation of EJB Development Frederic Simon AlphaCSP Agenda Standards, Open Source & EJB 3.0 Tiger (Java 5) & JEE What is EJB 3.0

More information

Developing Applications for the Java EE 7 Platform 9-2

Developing Applications for the Java EE 7 Platform 9-2 Developing Applications for the Java EE 7 Platform 9-2 REST is centered around an abstraction known as a "resource." Any named piece of information can be a resource. A resource is identified by a uniform

More information

GlassFish v3.1 EJB One Pager

GlassFish v3.1 EJB One Pager GlassFish v3.1 EJB One Pager (template version: 1.91) Table of Contents 1. Introduction 1.1 Project/Component Working Name 1.2 Name(s) and e-mail address of Document Author(s)/Supplier 1.3. Date of This

More information

BEAAquaLogic. Service Bus. Interoperability With EJB Transport

BEAAquaLogic. Service Bus. Interoperability With EJB Transport BEAAquaLogic Service Bus Interoperability With EJB Transport Version 3.0 Revised: February 2008 Contents EJB Transport Introduction...........................................................1-1 Invoking

More information

Introduction... xv SECTION 1: DEVELOPING DESKTOP APPLICATIONS USING JAVA Chapter 1: Getting Started with Java... 1

Introduction... xv SECTION 1: DEVELOPING DESKTOP APPLICATIONS USING JAVA Chapter 1: Getting Started with Java... 1 Introduction... xv SECTION 1: DEVELOPING DESKTOP APPLICATIONS USING JAVA Chapter 1: Getting Started with Java... 1 Introducing Object Oriented Programming... 2 Explaining OOP concepts... 2 Objects...3

More information

Oracle - Developing Applications for the Java EE 7 Platform Ed 1 (Training On Demand)

Oracle - Developing Applications for the Java EE 7 Platform Ed 1 (Training On Demand) Oracle - Developing Applications for the Java EE 7 Platform Ed 1 (Training On Demand) Code: URL: D101074GC10 View Online The Developing Applications for the Java EE 7 Platform training teaches you how

More information

Solving Application Installation Issues During Migration

Solving Application Installation Issues During Migration Solving Application Installation Issues During Migration Introduction Each new release of IBM WebSphere Application Server provides new features and improves on existing features in the WebSphere runtime,

More information

Enterprise JavaBeans. Layer:01. Overview

Enterprise JavaBeans. Layer:01. Overview Enterprise JavaBeans Layer:01 Overview Agenda Course introduction & overview. Hardware & software configuration. Evolution of enterprise technology. J2EE framework & components. EJB framework & components.

More information

Enterprise JavaBeans, Version 3 (EJB3) Programming

Enterprise JavaBeans, Version 3 (EJB3) Programming Enterprise JavaBeans, Version 3 (EJB3) Programming Description Audience This course teaches developers how to write Java Enterprise Edition (JEE) applications that use Enterprise JavaBeans, version 3.

More information

AIMMS Function Reference - Date Time Related Identifiers

AIMMS Function Reference - Date Time Related Identifiers AIMMS Function Reference - Date Time Related Identifiers This file contains only one chapter of the book. For a free download of the complete book in pdf format, please visit www.aimms.com Aimms 3.13 Date-Time

More information

11-15 DECEMBER ANTWERP BELGIUM

11-15 DECEMBER ANTWERP BELGIUM 1 Java EE Enhancements for Real World Deployments Nagesh Susarla Staff Software Engineer BEA Systems www.javapolis.com 2 Overall Presentation Goal Get an understanding of the latest application packaging,

More information

Techniques for Building J2EE Applications

Techniques for Building J2EE Applications Techniques for Building J2EE Applications Dave Landers BEA Systems, Inc. dave.landers@4dv.net dave.landers@bea.com Why are we Here? Discuss issues encountered with J2EE Application deployment Based on

More information

BEA WebLogic Server R Using FastSwap TM to Minimize Redeployment

BEA WebLogic Server R Using FastSwap TM to Minimize Redeployment BEA WebLogic Server R Using FastSwap TM to Minimize Redeployment Version: 10.3 Tech Document Date: October 2007 Table of Contents Overview of Class Redefinition... 3 Hasn t this been attempted before?...

More information

Spring Framework 2.5: New and Notable. Ben Alex, Principal Software Engineer, SpringSource

Spring Framework 2.5: New and Notable. Ben Alex, Principal Software Engineer, SpringSource Spring Framework 2.5: New and Notable Ben Alex, Principal Software Engineer, SpringSource GOAL> Learn what s new in Spring 2.5 and why it matters to you springsource.com 2 Agenda Goals of Spring 2.5 Support

More information

Practice Test. Oracle 1z Java Enterprise Edition 5 Business Component Developer Certified Professional Upgrade Exam. Version: 14.

Practice Test. Oracle 1z Java Enterprise Edition 5 Business Component Developer Certified Professional Upgrade Exam. Version: 14. Oracle 1z0-861 Java Enterprise Edition 5 Business Component Developer Certified Professional Upgrade Exam Practice Test Version: 14.22 QUESTION NO: 1 A developer wants to create a business interface for

More information

SCBCD EXAM STUDY KIT. Paul Sanghera CX JAVA BUSINESS COMPONENT DEVELOPER CERTIFICATION FOR EJB MANNING. Covers all you need to pass

SCBCD EXAM STUDY KIT. Paul Sanghera CX JAVA BUSINESS COMPONENT DEVELOPER CERTIFICATION FOR EJB MANNING. Covers all you need to pass CX-310-090 SCBCD EXAM STUDY KIT JAVA BUSINESS COMPONENT DEVELOPER CERTIFICATION FOR EJB Covers all you need to pass Includes free download of a simulated exam You will use it even after passing the exam

More information

SUN Sun Cert Bus Component Developer Java EE Platform 5, Upgrade. Download Full Version :

SUN Sun Cert Bus Component Developer Java EE Platform 5, Upgrade. Download Full Version : SUN 310-092 Sun Cert Bus Component Developer Java EE Platform 5, Upgrade Download Full Version : https://killexams.com/pass4sure/exam-detail/310-092 D. A javax.ejb.nosuchentityexception is thrown. Answer:

More information

This page intentionally left blank

This page intentionally left blank This page intentionally left blank 3 3Enterprise Beans Enterprise beans are Java EE components that implement Enterprise JavaBeans (EJB) technology. Enterprise beans run in the EJB container, a runtime

More information

Oracle Exam 1z0-895 Java EE 6 Enterprise JavaBeans Developer Certified Expert Exam Version: 14.0 [ Total Questions: 90 ]

Oracle Exam 1z0-895 Java EE 6 Enterprise JavaBeans Developer Certified Expert Exam Version: 14.0 [ Total Questions: 90 ] s@lm@n Oracle Exam 1z0-895 Java EE 6 Enterprise JavaBeans Developer Certified Expert Exam Version: 14.0 [ Total Questions: 90 ] Oracle 1z0-895 : Practice Test Question No : 1 A developer wants to create

More information

Enterprise JavaBeans 3.1

Enterprise JavaBeans 3.1 SIXTH EDITION Enterprise JavaBeans 3.1 Andrew Lee Rubinger and Bill Burke O'REILLY* Beijing Cambridge Farnham Kbln Sebastopol Tokyo Table of Contents Preface xv Part I. Why Enterprise JavaBeans? 1. Introduction

More information

Building the Enterprise

Building the Enterprise Building the Enterprise The Tools of Java Enterprise Edition 2003-2007 DevelopIntelligence LLC Presentation Topics In this presentation, we will discuss: Overview of Java EE Java EE Platform Java EE Development

More information

Seam 3. Pete Muir JBoss, a Division of Red Hat

Seam 3. Pete Muir JBoss, a Division of Red Hat Seam 3 Pete Muir JBoss, a Division of Red Hat Road Map Introduction Java EE 6 Java Contexts and Dependency Injection Seam 3 Mission Statement To provide a fully integrated development platform for building

More information

GlassFish V3. Jerome Dochez. Sun Microsystems, Inc. hk2.dev.java.net, glassfish.dev.java.net. Session ID YOUR LOGO HERE

GlassFish V3. Jerome Dochez. Sun Microsystems, Inc. hk2.dev.java.net, glassfish.dev.java.net. Session ID YOUR LOGO HERE YOUR LOGO HERE GlassFish V3 Jerome Dochez Sun Microsystems, Inc. hk2.dev.java.net, glassfish.dev.java.net Session ID 1 Goal of Your Talk What Your Audience Will Gain Learn how the GlassFish V3 groundbreaking

More information

Borland Application Server Certification. Study Guide. Version 1.0 Copyright 2001 Borland Software Corporation. All Rights Reserved.

Borland Application Server Certification. Study Guide. Version 1.0 Copyright 2001 Borland Software Corporation. All Rights Reserved. Borland Application Server Certification Study Guide Version 1.0 Copyright 2001 Borland Software Corporation. All Rights Reserved. Introduction This study guide is designed to walk you through requisite

More information

JavaEE Interview Prep

JavaEE Interview Prep Java Database Connectivity 1. What is a JDBC driver? A JDBC driver is a Java program / Java API which allows the Java application to establish connection with the database and perform the database related

More information

Supports 1-1, 1-many, and many to many relationships between objects

Supports 1-1, 1-many, and many to many relationships between objects Author: Bill Ennis TOPLink provides container-managed persistence for BEA Weblogic. It has been available for Weblogic's application server since Weblogic version 4.5.1 released in December, 1999. TOPLink

More information

<Insert Picture Here> Productive JavaEE 5.0 Development

<Insert Picture Here> Productive JavaEE 5.0 Development Productive JavaEE 5.0 Development Frank Nimphius Principle Product Manager Agenda Introduction Annotations EJB 3.0/JPA Dependency Injection JavaServer Faces JAX-WS Web Services Better

More information

Scheduling. Scheduling Tasks At Creation Time CHAPTER

Scheduling. Scheduling Tasks At Creation Time CHAPTER CHAPTER 13 This chapter explains the scheduling choices available when creating tasks and when scheduling tasks that have already been created. Tasks At Creation Time The tasks that have the scheduling

More information

ITcertKing. The latest IT certification exam materials. IT Certification Guaranteed, The Easy Way!

ITcertKing.  The latest IT certification exam materials. IT Certification Guaranteed, The Easy Way! ITcertKing The latest IT certification exam materials http://www.itcertking.com IT Certification Guaranteed, The Easy Way! Exam : 1Z0-860 Title : Java Enterprise Edition 5 Business Component Developer

More information

Application Servers in E-Commerce Applications

Application Servers in E-Commerce Applications Application Servers in E-Commerce Applications Péter Mileff 1, Károly Nehéz 2 1 PhD student, 2 PhD, Department of Information Engineering, University of Miskolc Abstract Nowadays there is a growing demand

More information

Java Platform, Enterprise Edition 6 with Extensible GlassFish Application Server v3

Java Platform, Enterprise Edition 6 with Extensible GlassFish Application Server v3 Java Platform, Enterprise Edition 6 with Extensible GlassFish Application Server v3 Jerome Dochez Mahesh Kannan Sun Microsystems, Inc. Agenda > Java EE 6 and GlassFish V3 > Modularity, Runtime > Service

More information

J2EE Development. Course Detail: Audience. Duration. Course Abstract. Course Objectives. Course Topics. Class Format.

J2EE Development. Course Detail: Audience. Duration. Course Abstract. Course Objectives. Course Topics. Class Format. J2EE Development Detail: Audience www.peaksolutions.com/ittraining Java developers, web page designers and other professionals that will be designing, developing and implementing web applications using

More information

Implementing a Web Service p. 110 Implementing a Web Service Client p. 114 Summary p. 117 Introduction to Entity Beans p. 119 Persistence Concepts p.

Implementing a Web Service p. 110 Implementing a Web Service Client p. 114 Summary p. 117 Introduction to Entity Beans p. 119 Persistence Concepts p. Acknowledgments p. xvi Introduction p. xvii Overview p. 1 Overview p. 3 The Motivation for Enterprise JavaBeans p. 4 Component Architectures p. 7 Divide and Conquer to the Extreme with Reusable Services

More information

Chapter 4 Java Language Fundamentals

Chapter 4 Java Language Fundamentals Chapter 4 Java Language Fundamentals Develop code that declares classes, interfaces, and enums, and includes the appropriate use of package and import statements Explain the effect of modifiers Given an

More information

Enterprise Java in 2012 and Beyond From Java EE 6 To Cloud Computing

Enterprise Java in 2012 and Beyond From Java EE 6 To Cloud Computing Enterprise Java in 2012 and Beyond From Java EE 6 To Cloud Computing Jürgen Höller, Principal Engineer, SpringSource 2012 SpringSource, A division of VMware. All rights reserved Deployment Platforms: Becoming

More information

Incremental improvements for the Spring Framework

Incremental improvements for the Spring Framework Incremental improvements for the Spring Framework I am working as an architect for a middle-sized software development company, where we have been actively using J2EE extension frameworks for the last

More information

Enterprise JavaBeans. Layer:03. Session

Enterprise JavaBeans. Layer:03. Session Enterprise JavaBeans Layer:03 Session Agenda Build stateless & stateful session beans. Describe the bean's lifecycle. Describe the server's swapping mechanism. Last Revised: 10/2/2001 Copyright (C) 2001

More information

web.xml Deployment Descriptor Elements

web.xml Deployment Descriptor Elements APPENDIX A web.xml Deployment Descriptor s The following sections describe the deployment descriptor elements defined in the web.xml schema under the root element . With Java EE annotations, the

More information

EMBEDDED MESSAGING USING ACTIVEMQ

EMBEDDED MESSAGING USING ACTIVEMQ Mark Richards EMBEDDED MESSAGING USING ACTIVEMQ Embedded messaging is useful when you need localized messaging within your application and don t need (or want) an external message broker. It s a good technique

More information

michael meding*,

michael meding*, R E M OT E E J B S E T U P A N D I N V O C AT I O N michael meding*, mikeymeding@gmail.com contents abstract This article details a ground up intro to setting up a remote EJB and invoking a method from

More information

In the most general sense, a server is a program that provides information

In the most general sense, a server is a program that provides information d524720 Ch01.qxd 5/20/03 8:37 AM Page 9 Chapter 1 Introducing Application Servers In This Chapter Understanding the role of application servers Meeting the J2EE family of technologies Outlining the major

More information

@Stateless. To avoid that use openejb.offline property and set it to true. See Server Configuration for more detail.

@Stateless. To avoid that use openejb.offline property and set it to true. See Server Configuration for more detail. Resources All containers will be created automatically - which means you don t need to define them if you don t need to tune their configuration - when a bean of their type if found. To avoid that use

More information

TOPLink for WebLogic. Whitepaper. The Challenge: The Solution:

TOPLink for WebLogic. Whitepaper. The Challenge: The Solution: Whitepaper The Challenge: Enterprise JavaBeans (EJB) represents a new standard in enterprise computing: a component-based architecture for developing and deploying distributed object-oriented applications

More information

J2EE Packaging and Deployment

J2EE Packaging and Deployment Summary of Contents Introduction 1 Chapter 1: The J2EE Platform 9 Chapter 2: Directory Services and JNDI 39 Chapter 3: Distributed Computing Using RMI 83 Chapter 4 Database Programming with JDBC 157 Chapter

More information

BEAWebLogic. Server. Programming WebLogic Deployment

BEAWebLogic. Server. Programming WebLogic Deployment BEAWebLogic Server Programming WebLogic Deployment Version 10.0 Revised: March 30, 2007 Contents 1. Introduction and Roadmap Document Scope and Audience............................................. 1-1

More information

Plan. Department of Informatics. Advanced Software Engineering Prof. J. Pasquier-Rocha Cours de Master en Informatique - SH 2003/04

Plan. Department of Informatics. Advanced Software Engineering Prof. J. Pasquier-Rocha Cours de Master en Informatique - SH 2003/04 Plan 1. Application Servers 2. Servlets, JSP, JDBC 3. J2EE: Vue d ensemble 4. Distributed Programming 5. Enterprise JavaBeans 6. Enterprise JavaBeans: Transactions 7. Prise de recul critique Enterprise

More information

Developing Applications with Java EE 6 on WebLogic Server 12c

Developing Applications with Java EE 6 on WebLogic Server 12c Developing Applications with Java EE 6 on WebLogic Server 12c Duration: 5 Days What you will learn The Developing Applications with Java EE 6 on WebLogic Server 12c course teaches you the skills you need

More information

Introduction. Enterprise Java Instructor: Please introduce yourself Name Experience in Java Enterprise Edition Goals you hope to achieve

Introduction. Enterprise Java Instructor: Please introduce yourself Name Experience in Java Enterprise Edition Goals you hope to achieve Enterprise Java Introduction Enterprise Java Instructor: Please introduce yourself Name Experience in Java Enterprise Edition Goals you hope to achieve Course Description This course focuses on developing

More information

WebSphere Application Server for z/os I'm Not a Dummy But...

WebSphere Application Server for z/os I'm Not a Dummy But... WebSphere Application Server for z/os I'm Not a Dummy But... Other Sessions Agenda... 2 Objectives and Agenda Objective: To extend your understanding of WAS z/os to include things you might not have otherwise

More information

ApplicationComposer. The TomEE Swiss Knife

ApplicationComposer. The TomEE Swiss Knife ApplicationComposer The TomEE Swiss Knife ApplicationComposer API is mainly contained in org.apache.openejb.testing package (historically, today we would have called the package org.apache.tomee.applicationcomposer).

More information

Overview p. 1 Server-side Component Architectures p. 3 The Need for a Server-Side Component Architecture p. 4 Server-Side Component Architecture

Overview p. 1 Server-side Component Architectures p. 3 The Need for a Server-Side Component Architecture p. 4 Server-Side Component Architecture Preface p. xix About the Author p. xxii Introduction p. xxiii Overview p. 1 Server-side Component Architectures p. 3 The Need for a Server-Side Component Architecture p. 4 Server-Side Component Architecture

More information

Socket attaches to a Ratchet. 2) Bridge Decouple an abstraction from its implementation so that the two can vary independently.

Socket attaches to a Ratchet. 2) Bridge Decouple an abstraction from its implementation so that the two can vary independently. Gang of Four Software Design Patterns with examples STRUCTURAL 1) Adapter Convert the interface of a class into another interface clients expect. It lets the classes work together that couldn't otherwise

More information

WHAT IS EJB. Security. life cycle management.

WHAT IS EJB. Security. life cycle management. EJB WHAT IS EJB EJB is an acronym for enterprise java bean. It is a specification provided by Sun Microsystems to develop secured, robust and scalable distributed applications. To run EJB application,

More information