presented by pradeep k sahu. what will be the contents of the seminar ? what is ejb ? ejb...

41
Presented By Pradeep K Sahu

Upload: nicholas-allen

Post on 12-Jan-2016

225 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Presented By Pradeep K Sahu. What will be the Contents of the Seminar ? What is EJB ? EJB Architecture Types of EJB Session Entity Why EJB ? Writing a

Presented By

Pradeep K Sahu

Page 2: Presented By Pradeep K Sahu. What will be the Contents of the Seminar ? What is EJB ? EJB Architecture Types of EJB Session Entity Why EJB ? Writing a

What will be the Contents of the Seminar ?

What is EJB ?

EJB Architecture

Types of EJB

Session

Entity

Why EJB ?

Writing a Hello World Session EJB

Differences between Java Bean and Enterprise Java Bean

Page 3: Presented By Pradeep K Sahu. What will be the Contents of the Seminar ? What is EJB ? EJB Architecture Types of EJB Session Entity Why EJB ? Writing a

It defines a framework for creating distributed enterprise middleware

Enterprise Java Beans (EJB) ….

Defines a standard to building distributed server side systems

Frees the EJB developer to only concentrate on programming the business logic

Handles the other “plumbing” to handle transactions, security connection /thread pooling etc., by delegating this to the vendor

Page 4: Presented By Pradeep K Sahu. What will be the Contents of the Seminar ? What is EJB ? EJB Architecture Types of EJB Session Entity Why EJB ? Writing a

Differences between

No explicit support exists for transactions in Java beans.

EJB may be transactional and the EJB server provide transactional support.

Java Beans Enterprise Java BeansCan be either visible or non-visible

Are decidedly Non –Visible remote objects

Intended to be local to a single process on the client side

Remotely executable components deployed on the server

Uses the Bean Info classes. Property Editors and Customizers to describe it self

Uses the Deployment Descriptor to describe itself

Can also be developed as an ActiveX control

Cannot be deployed as an ActiveX control since OCX run on the desktop

Page 5: Presented By Pradeep K Sahu. What will be the Contents of the Seminar ? What is EJB ? EJB Architecture Types of EJB Session Entity Why EJB ? Writing a

Why Enterprise Java Beans?

Architectural Independence from middleware

Write Once Run Anywhere (WORA) for server side components

Establishes role for application development

Takes care of Transaction Management

Provides Distributed Transaction support

Helps create Portable and scalable solutions

Integrates seamlessly with CORBA

Provides vendor specific enhancements

Page 6: Presented By Pradeep K Sahu. What will be the Contents of the Seminar ? What is EJB ? EJB Architecture Types of EJB Session Entity Why EJB ? Writing a

Components of the EJB Architecture are

The EJB Architecture

EJB Client

EJB server

EJB Container

The Home Interface and Home Object

The Remote Interface and EJBObject

EJBeans

Other services like JNDI,JTS & Security

Page 7: Presented By Pradeep K Sahu. What will be the Contents of the Seminar ? What is EJB ? EJB Architecture Types of EJB Session Entity Why EJB ? Writing a

Architecture

Page 8: Presented By Pradeep K Sahu. What will be the Contents of the Seminar ? What is EJB ? EJB Architecture Types of EJB Session Entity Why EJB ? Writing a

Makes EJB Container visible

The EJB Server

Provides an organized framework for EJB Containers to execute in

Provides system-services like multiprocessing, load balancing, device access, JNDI accessible naming and transaction services available to the container

Page 9: Presented By Pradeep K Sahu. What will be the Contents of the Seminar ? What is EJB ? EJB Architecture Types of EJB Session Entity Why EJB ? Writing a

Session containers contain session EJBs and Entity containers contain entity EJBs

EJB Containers

Interface between EJBeans and outside world

EJB client never access an EJBeans directly –any access is done through container- generated methods which in turn invoke bean methods

Page 10: Presented By Pradeep K Sahu. What will be the Contents of the Seminar ? What is EJB ? EJB Architecture Types of EJB Session Entity Why EJB ? Writing a

The Home Object is the implementation of the Home Interface

The Home Interface and The Home Object

Contains Factory methods for locating creating and removing instances of EJBs

The EJB developer defines the Home Interface for his bean

The Home Object is generated by tools provided by the Container Vender

Page 11: Presented By Pradeep K Sahu. What will be the Contents of the Seminar ? What is EJB ? EJB Architecture Types of EJB Session Entity Why EJB ? Writing a

The Remote Interface and the EJB Object

EJB Clients use the methods present in the Remote Interface to invoke business methods of the EJBean

The Remote Interface lists the business methods present in an EJB classThe Remote Interface is defined by the EJB developerThe EJBObject which is the concern class for the Remote Interface is generated by the tools provided by the container vendor

Page 12: Presented By Pradeep K Sahu. What will be the Contents of the Seminar ? What is EJB ? EJB Architecture Types of EJB Session Entity Why EJB ? Writing a

The EJB Client

Finds EJB containers using JNDIUses EJB containers to invoke EJB methodsUses the Home Object to locate , create,or destroy an EJB class.Uses the EJBObject instance to invoke business methods of the EJB instance

Page 13: Presented By Pradeep K Sahu. What will be the Contents of the Seminar ? What is EJB ? EJB Architecture Types of EJB Session Entity Why EJB ? Writing a

The Enterprise Java Bean

Contained within the EJB container and is only accesses through the container

There are two types of EJBeans

Session Entity(3rd type Message Driven Bean is added in EJB 2.0)

Session Beans are again two typesStateless and

Stateful

Page 14: Presented By Pradeep K Sahu. What will be the Contents of the Seminar ? What is EJB ? EJB Architecture Types of EJB Session Entity Why EJB ? Writing a

Difference between Session and Entity Bean

Session Bean Entity BeanAre associated with a particular client

Are shared by multiple clients

Handle database access for a particular client

Handle database access for a multiple clients

Life is limited to the life of a particular client

Persist across multiple invocations

Do not survive server crashes

Survive server crashes

Page 15: Presented By Pradeep K Sahu. What will be the Contents of the Seminar ? What is EJB ? EJB Architecture Types of EJB Session Entity Why EJB ? Writing a

Start the server and execute the client

Steps involved in Developing an EJB

Define Home InterfaceDefine Remote InterfaceDevelop Entity or Session Bean In the case of Entity Beans, define the Primary Key Class Write the Deployment Descriptor / XML File.Compile all classes and create the Jar fileGenerate the container code by using the tools provided by the container provider

Develop the Client code

Deploy the EJB in the server

Page 16: Presented By Pradeep K Sahu. What will be the Contents of the Seminar ? What is EJB ? EJB Architecture Types of EJB Session Entity Why EJB ? Writing a

We have covered

Lets Summarize…..

Next

Why we need EJB and its advantagesComponents of EJB ArchitectureTypes of EJB that is Session and Entity BeanDifference between Session and Entity Bean

Guess ?

Page 17: Presented By Pradeep K Sahu. What will be the Contents of the Seminar ? What is EJB ? EJB Architecture Types of EJB Session Entity Why EJB ? Writing a

Yes, you are right…

Next Session Bean…..

Page 18: Presented By Pradeep K Sahu. What will be the Contents of the Seminar ? What is EJB ? EJB Architecture Types of EJB Session Entity Why EJB ? Writing a
Page 19: Presented By Pradeep K Sahu. What will be the Contents of the Seminar ? What is EJB ? EJB Architecture Types of EJB Session Entity Why EJB ? Writing a

Session Beans

Represents a business process and business process related logics.

Are two types

1. Stateless Session Bean : are beans that holds conversations that span a single method call.

2. Stateful session bean : are beans that hold conversations with clients that may span many method calls.

Now let’s write a “Hello World” Stateless Session Bean(We will deploy in Weblogic)

Introduction

Page 20: Presented By Pradeep K Sahu. What will be the Contents of the Seminar ? What is EJB ? EJB Architecture Types of EJB Session Entity Why EJB ? Writing a

Writing a“Hello World !”

Stateless Session Bean

Page 21: Presented By Pradeep K Sahu. What will be the Contents of the Seminar ? What is EJB ? EJB Architecture Types of EJB Session Entity Why EJB ? Writing a

Writing the Home Interface

Requirements for any Home Interface

Extend javax.ejb.EJBHome

Expose at least one create() method.

Page 22: Presented By Pradeep K Sahu. What will be the Contents of the Seminar ? What is EJB ? EJB Architecture Types of EJB Session Entity Why EJB ? Writing a

The Complete java Code for HelloHome.java

import javax.ejb.*;

import java.rmi.RemoteException;

/**

* This is the home interface for HelloBean. This interface

* is implemented by the EJB Server's tools - the

* implemented object is called the Home Object and serves

* as a factory for EJB Objects.

*/

public interface HelloHome extends EJBHome {

/*

* This method creates the EJB Object.

*/

Hello create() throws RemoteException, CreateException;

}

Page 23: Presented By Pradeep K Sahu. What will be the Contents of the Seminar ? What is EJB ? EJB Architecture Types of EJB Session Entity Why EJB ? Writing a

Writing the Remote Interface

Requirements for any Remote Interface

Extend javax.ejb.EJBObject

Declare the business methods that are to be exposed.

Page 24: Presented By Pradeep K Sahu. What will be the Contents of the Seminar ? What is EJB ? EJB Architecture Types of EJB Session Entity Why EJB ? Writing a

The Complete java Code for Hello.java

import javax.ejb.*;import java.rmi.RemoteException;import java.rmi.Remote;/*** This is the HelloBean remote interface.** This interface is what clients operate on when* they interact with EJB objects. The container* vendor will implement this interface; the* implemented object is the EJB object, which* delegates invocations to the actual bean.*/public interface Hello extends EJBObject {/*** The one method - hello - returns a greeting to the client.*/public String hello() throws java.rmi.RemoteException;}

Page 25: Presented By Pradeep K Sahu. What will be the Contents of the Seminar ? What is EJB ? EJB Architecture Types of EJB Session Entity Why EJB ? Writing a

Requirements for SessionBean

Extend javax.ejb.SessionBeanpublic interface javax.ejb.SessionBean extends javax.ejb.EnterpriseBean{public abstract void setSessionContext(SessionContext ctx) throws

java.rmi.RemoteException;public abstract void ejbPassivate() throws java.rmi.RemoteException;public abstract void ejbActivate() throws java.rmi.RemoteException;public abstract void ejbRemove() throws java.rmi.RemoteException;}

Implements the Business methods defined in the Remote interface.

In our example hello().

Writing the Bean Class

Page 26: Presented By Pradeep K Sahu. What will be the Contents of the Seminar ? What is EJB ? EJB Architecture Types of EJB Session Entity Why EJB ? Writing a

The Complete java Code for HelloBean.java

import javax.ejb.*;public class HelloBean implements SessionBean {// EJB-required methods public void ejbCreate() {

System.out.println("ejbCreate()"); } public void ejbRemove() {

System.out.println("ejbRemove()"); } public void ejbActivate() {

System.out.println("ejbActivate()"); } public void ejbPassivate() {

System.out.println("ejbPassivate()"); } public void setSessionContext(SessionContext ctx) {

System.out.println("setSessionContext()"); } //Business methods public String hello{

System,out.println(“hello()”);return “Hello,World”;

}}

Page 27: Presented By Pradeep K Sahu. What will be the Contents of the Seminar ? What is EJB ? EJB Architecture Types of EJB Session Entity Why EJB ? Writing a

Deployment Descriptor

To Deploy any Session Bean on Weblogic server 5.1 we need 2 descriptor (XML) file.

1. ejb-jar.xml :This XML file must conform to the DTD provided by JavaSoft in the EJB 1.1 specification. This XML file is not vendor specific.

2. weblogic-ejb-jar.xml : specifies deployment properties required for deploying EJBs in WebLogic Server (For example defines timeout, pooling, and clustering behavior for EJBs)

Page 28: Presented By Pradeep K Sahu. What will be the Contents of the Seminar ? What is EJB ? EJB Architecture Types of EJB Session Entity Why EJB ? Writing a

Writing ejb-jar.xml Deployment Descriptor

<?xml version="1.0"?><!DOCTYPE ejb-jar PUBLIC '-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 1.1//EN' 'http://java.sun.com/j2ee/dtds/ejb-jar_1_1.dtd'><ejb-jar> <small-icon>images/green-cube.gif</small-icon> <enterprise-beans> <session> <small-icon>images/orange-cube.gif</small-icon>

<ejb-name>HelloWorld</ejb-name><home>HelloHome</home><remote>Hello</remote><ejb-class>HelloBean</ejb-class><session-type>Stateless</session-type><transaction-type>Container</transaction-type></session>

</enterprise-beans> <assembly-descriptor> <container-transaction>

<method> <ejb-name>HelloWorld</ejb-name> <method-intf>Remote</method-intf> <method-name>*</method-name></method><trans-attribute>Required</trans-attribute>

</container-transaction> </assembly-descriptor> </ejb-jar>

Page 29: Presented By Pradeep K Sahu. What will be the Contents of the Seminar ? What is EJB ? EJB Architecture Types of EJB Session Entity Why EJB ? Writing a

Writing weblogic-ejb-jar.xml Deployment Descriptor

<?xml version="1.0"?>

<!DOCTYPE weblogic-ejb-jar PUBLIC '-//BEA Systems, Inc.//DTD WebLogic 5.1.0 EJB//EN' 'http://www.bea.com/servers/wls510/dtd/weblogic-ejb-jar.dtd'>

<weblogic-ejb-jar> <weblogic-enterprise-bean> <ejb-name>HelloWorld</ejb-name> <caching-descriptor>

<max-beans-in-free-pool>10</max-beans-in-free-pool> </caching-descriptor> <jndi-name>HelloHome</jndi-name> </weblogic-enterprise-bean> </weblogic-ejb-jar>

The name which will be shown in the server

The JNDI Name for the client to lookup

Max no of bean in pool

Page 30: Presented By Pradeep K Sahu. What will be the Contents of the Seminar ? What is EJB ? EJB Architecture Types of EJB Session Entity Why EJB ? Writing a

Creating EJB-jar

After getting all the java files compiled and the 2 xml file written we have to create the jar file containing all the files with the required order.For our Hello World application the files should be in the following order<Root>

Hello.classHelloHome.classHelloBean.class<META-INF>

ejb-jar.xml weblogic-ejb-jar.xml

<images> green-cube.gif

orange-cube.gif

Create the jar file with the following command

Jar cf <Jar File Name to be created> *.*

For Example jar cf HelloWorld.jar *.*

If package is defined then the files should be in the respective package orderLike MyPackage/Hello.class in the root

Icon image files

Page 31: Presented By Pradeep K Sahu. What will be the Contents of the Seminar ? What is EJB ? EJB Architecture Types of EJB Session Entity Why EJB ? Writing a

Generating EJB Container classes and Deployment

Once the HelloWorld.jar file is created next is to

Create the container classes

Generate the container classes with the help of ejbc Compiler. The Command is

ejbc <source jarFile> <The target jar file>

Source jar file : is the jar file created by us.(Contains 2 XML files and Home,Remote and Bean classes.

The target jar file :The jar file which will be created.This will contain all the required container classes.

For Example : ejbc HelloWorld.jar HelloWorldEJB.jar

Page 32: Presented By Pradeep K Sahu. What will be the Contents of the Seminar ? What is EJB ? EJB Architecture Types of EJB Session Entity Why EJB ? Writing a

Continue….

Once we get the jar file containing the Container classes we are ready to deploy the our EJB in Weblogic 5.1 server. We can deploy in a different ways.We will deploy by adding the jar file details to the weblogic.properties file so that the EJB will get automatically loaded when the application server starts.

The format isweblogic.ejb.deploy=<The Complete jar file path>

Note : The folder path separator is “/” not ‘\’

For example:weblogic.ejb.deploy=D:/Java/Programs/Examples/EJB/HeloWorldEJB.jar

After adding the above line restart the WebLogic.So that the EJB will get loaded.

Page 33: Presented By Pradeep K Sahu. What will be the Contents of the Seminar ? What is EJB ? EJB Architecture Types of EJB Session Entity Why EJB ? Writing a

Lets Summarize…..

We have covered

EJB Architecture and its Components

Home Interface,Remote Interface

Session Bean Details

How to write a Stateless Session EJB

How to deploy an EJB in Weblogic server

Next

How to write the Client application.

Page 34: Presented By Pradeep K Sahu. What will be the Contents of the Seminar ? What is EJB ? EJB Architecture Types of EJB Session Entity Why EJB ? Writing a

Lets take a

Page 35: Presented By Pradeep K Sahu. What will be the Contents of the Seminar ? What is EJB ? EJB Architecture Types of EJB Session Entity Why EJB ? Writing a

How to write the Client program

The Client code performs the following tasks :

• Looks up a home object

• Uses the home object to create an EJB Object.

• Calls the business methods (hello() in our example) on the EJB object

• Removes the EJB Object.

Page 36: Presented By Pradeep K Sahu. What will be the Contents of the Seminar ? What is EJB ? EJB Architecture Types of EJB Session Entity Why EJB ? Writing a

import javax.ejb.*;import javax.naming.*;import java.rmi.*;import java.util.Properties;

public class HelloClient {public static void main(String[] args) {

try {// Get System properties for JNDI initializationProperties props = System.getProperties();

// Form an initial contextContext ctx = new InitialContext(props);

// Get a reference to the home object (the factory for EJB objects)HelloHome home = (HelloHome) ctx.lookup("HelloHome");

// Use the factory to create the EJB ObjectHello hello = home.create();

//Call the hello() method, and print itSystem.out.println(hello.hello());

//Remove the EJB Objecthello.remove();

} catch (Exception e) {e.printStackTrace();

} }}

The Complete java Code for HelloClient.java

Page 37: Presented By Pradeep K Sahu. What will be the Contents of the Seminar ? What is EJB ? EJB Architecture Types of EJB Session Entity Why EJB ? Writing a

The Client needs the following components or parameters

The J2EE class files in the classpath The Home and Remote Interface in it’s classpath The JNDI environment informationRunning the Client

1. Run the setEnv.bat file present in the Weblogic root folder to set the class path and other environment settings

2. Run the Client with the JNDI parameters.In case of weblogic we can run the command by the

following commandjava -Djava.naming.factory.initial=weblogic.jndi.TengahInitialContextFactory

-Djava.naming.provider.url=t3://localhost:7001 <ClientClassFile2Run >

For our HelloWorld application it is java -Djava.naming.factory.initial=weblogic.jndi.TengahInitialContextFactory

-Djava.naming.provider.url=t3://localhost:7001 HelloClient

Running the Client

Page 38: Presented By Pradeep K Sahu. What will be the Contents of the Seminar ? What is EJB ? EJB Architecture Types of EJB Session Entity Why EJB ? Writing a

The Server-Side OutputWhen we run the client, our container shows the folloeing output

setSessionContext()ejbCreate()hello()ejbREmove()

The Client-Side OutputAfter running the client, we can see the following out put :

Hello,World!

Output

Page 39: Presented By Pradeep K Sahu. What will be the Contents of the Seminar ? What is EJB ? EJB Architecture Types of EJB Session Entity Why EJB ? Writing a

Stateless Session Bean Life CycleBefore Closing the Stateless Session Bean lets have a look on the Life Cycle and sequence diagram of Stateless Session Bean

Each method call shown is an invocation from the container to the bean instance.

Page 40: Presented By Pradeep K Sahu. What will be the Contents of the Seminar ? What is EJB ? EJB Architecture Types of EJB Session Entity Why EJB ? Writing a

Sequence diagram for stateless session beans.

Page 41: Presented By Pradeep K Sahu. What will be the Contents of the Seminar ? What is EJB ? EJB Architecture Types of EJB Session Entity Why EJB ? Writing a

Presented By

Pradeep K Sahu

For Your Patience……