Transcript EJB - Elte

Integrating J2EE Components
Copyright © 2004, Oracle. All rights reserved.
Objectives
After completing this lesson, you should be able to do
the following:
• Create JavaServer Pages (JSP) clients for EJBs
• Use Enterprise JavaBeans (EJB) tags in JSPs
• Modify the configuration files in OracleAS 10g
Containers for J2EE (OC4J)
17-2
Copyright © 2004, Oracle. All rights reserved.
Overview
Web tier
JSP
HttpServlet
Request
EJB tier
Controller
servlet
To EIS
HttpServlet
Response
17-3
Employees
JSP
Copyright © 2004, Oracle. All rights reserved.
Employees
EJB
Creating Remote Clients for EJBs
To create a remote JSP client for an Enterprise
JavaBean, perform the following steps :
1. Import the EJB home interface.
2. Override the jspInit() method.
– Use the lookup() method to create a reference to
the EJB.
– Create the EJB remote object.
3. Retrieve the necessary parameters from the
request object and pass the parameters to the
EJB method.
4. Define a reference to the EJB in the web.xml file.
17-4
Copyright © 2004, Oracle. All rights reserved.
Importing the EJB Home Interface
Use the page directive to import the naming package
and the home interface for the EJB:
<%@ page import="mypackage.Employees,
mypackage.EmployeesHome, javax.ejb.*,
javax.naming.*,
javax.rmi.PortableRemoteObject,
java.rmi.RemoteException" %>
17-5
Copyright © 2004, Oracle. All rights reserved.
Create a Reference to the EJB
To create an EJB reference, use the lookup method.
Override the jspInit() method as follows:
<%! Employees employees = null;
public void jspInit() {
try {
InitialContext ic = new InitialContext();
EmployeesHome employeesHome = (EmployeesHome)
PortableRemoteObject.narrow
(ic.lookup("java:comp/env/Employees"),
EmployeesHome.class);
employees = employeesHome.create(); }
catch (RemoteException ex) {
ex.printStackTrace();
}
}
%>
17-6
Copyright © 2004, Oracle. All rights reserved.
Passing Arguments to the EJB Method
Calling an EJB method from a JSP expression
evaluates the return value of the EJB method and
displays it, as follows:
<html><body><h1>Insert an Employee Number:</h1>
<form method="get">
<p><input type="text" name="empno">
<p><input type="Submit" value="Submit">
</form>
<% String empno = request.getParameter("empno");
if (empno != null && empno.length() >0) {
int i = Integer.parseInt(empno);%>
<%= employees.getDetails(i) %>
<% } %>
</body></html>
17-7
Copyright © 2004, Oracle. All rights reserved.
Creating an EJB Reference
To obtain an EJB reference for the Web tier
components, create an <ejb-ref> element for the
EJB in the web.xml file:
17-8
Copyright © 2004, Oracle. All rights reserved.
Creating Local Clients for EJBs
Creating JSP clients for local EJBs is similar to
creating remote clients, with the following exceptions:
• The EJB object does not have to be cast to a
PortableRemoteObject.
• Because the create() method does not throw a
RemoteException exception, this does not have
to be caught in the client.
• Instead of <ejb-ref>, an <ejb-local-ref>
element is created in the client web.xml file.
17-9
Copyright © 2004, Oracle. All rights reserved.
ejb-local-ref Element
Right-click web.xml to create an EJB local reference.
17-10
Copyright © 2004, Oracle. All rights reserved.
EJB Tags
Oracle Application Server 10g provides a tag library
that contains custom tags for referencing EJBs in
JSPs:
17-11
EJB Tag
Purpose
useHome
Looks up the home interface for the EJB and
creates an instance of it
useBean
Instantiates the EJB
createBean
Nests an EJB createBean tag within the
useBean tag to create the EJB instance
iterate
Iterates through a collection of EJB
instances
Copyright © 2004, Oracle. All rights reserved.
useHome Tag
The useHome tag has no body. The attributes are:
• id (required)
• type (required)
• location (required)
<EJB:useHome id="empHome"
type="mypackage.EmployeesHome"
location="java:comp/env/ejb/Employees"
local="false" />
17-12
Copyright © 2004, Oracle. All rights reserved.
useBean Tag
The attributes of the useBean tag include:
• id (required)
• type (required)
• value
• scope
<EJB:useBean id="bean"
type="mypackage.EmployeesBean"
scope="session" />
17-13
Copyright © 2004, Oracle. All rights reserved.
createBean Tag
The createBean tag contains only one required
attribute named instance.
<EJB:useBean id="bean"
type="mypackage.EmployeesBean"
scope="session">
<EJB:createBean
instance="<%=EmployeesHome.create()%>" />
</EJB:useBean>
17-14
Copyright © 2004, Oracle. All rights reserved.
iterate Tag
The following are the attributes of the iterate tag:
• id (required)
• type (required)
• collection (required)
• max
<EJB:iterate id="empdetails"
type="mypackage.Employees"
collection="<%=bean.getDetails(pk)%>"
max="100"> <jsp:getProperty name="empdetails"
property="id" /> </EJB:iterate>
17-15
Copyright © 2004, Oracle. All rights reserved.
Using the EJB Tags
To use the EJB tags, perform the following steps:
1. Add the Oracle9iAS library to your project in
JDeveloper.
a. Double-click the project and select libraries.
b. Make sure that “Oracle9iAS” is included in your
project.
2. Use the OJSP EJB Library provided in the
component palette to add the necessary tags to
your JSP file. (This adds the bean as well as the
taglib directive to the JSP.)
17-16
Copyright © 2004, Oracle. All rights reserved.
Deploying an Application: Web Tier
To deploy the Web tier components of a Java 2,
Enterprise Edition (J2EE) application, perform the
following steps:
1. Make sure that the ejb-ref or ejb-local-ref
elements exist in the web.xml file.
2. Create a WAR deployment profile (.deploy) in
JDeveloper.
3. Right-click the .deploy file and select either of
the following:
– Deploy to WAR file
– Deploy to OracleAS10g (where OracleAS10g is the
name of your application server connection)
17-17
Copyright © 2004, Oracle. All rights reserved.
Deploying an Application: EJB Tier
1. Make sure that the ejb-jar.xml file contains
unique mappings for each EJB in the application.
2. Create a JAR deployment profile (.deploy) in
JDeveloper.
3. Right-click the .deploy file and select either of
the following:
– Deploy to JAR file
– Deploy to OracleAS10g
17-18
Copyright © 2004, Oracle. All rights reserved.
Deploying an Application: EAR File
1. Create an EAR file in JDeveloper.
2. Specify the EJB JAR and WAR files that are to be
included in this EAR file.
3. Right-click the .deploy file and select either of
the following:
– Deploy to EAR file
– Deploy to OracleAS10g
17-19
Copyright © 2004, Oracle. All rights reserved.
Deploying from Oracle Enterprise Manager
From the Enterprise Manager home page, click Home,
then Application, and then select Deploy EAR file:
17-20
Copyright © 2004, Oracle. All rights reserved.
Summary
In this lesson, you should have learned how to:
• Create JSP clients for EJBs
• Modify deployment descriptors for looking up an
EJB client
• Deploy a J2EE application to Oracle Application
Server 10g
17-21
Copyright © 2004, Oracle. All rights reserved.
Practice 17-1 and 17-2: Overview
These practices cover the following topics:
• Creating JSP clients that access EJBs
• Deploying a Web application to Oracle Application
Server 10g
17-22
Copyright © 2004, Oracle. All rights reserved.