j2eetutorial/examples/src/ejb/converter/index.jsp
. A JSP page is a text-based document that contains static template data, which can be expressed in any text-based format such as HTML, WML, and XML; and JSP elements, which construct dynamic content.Coding the Web Client
The statements (in bold in the following code) for locating the home interface, creating an enterprise bean instance, and invoking a business method are nearly identical to those of the J2EE application client. The parameter of the
lookup
method is the only difference; the motivation for using a different name is discussed in Specifying the JNDI Names.The classes needed by the client are declared with a JSP
page
directive (enclosed within the <%@ %>
characters). Because locating the home interface and creating the enterprise bean are performed only once, this code appears in a JSP declaration (enclosed within the <%! %>
characters) that contains the initialization method, jspInit
, of the JSP page. The declaration is followed by standard HTML markup for creating a form with an input field. A scriptlet (enclosed within the <% %>
characters) retrieves a parameter from the request and converts it to a BigDecimal
object. Finally, JSP expressions (enclosed within <%= %>
characters) invoke the enterprise bean's business methods and insert the result into the stream of data returned to the client.<%@ page import="Converter,ConverterHome,javax.ejb.*,
javax.naming.*, javax.rmi.PortableRemoteObject,
java.rmi.RemoteException" %>
<%!
private Converter converter = null;
public void jspInit() {
try {
InitialContext ic = new InitialContext(); Object objRef = ic.lookup(" java:comp/env/ejb/TheConverter"); ConverterHome home = (ConverterHome)PortableRemoteObject.narrow( objRef, ConverterHome.class); converter = home.create(); } catch (RemoteException ex) {
...
}
}
...
%>
<html>
<head>
<title>Converter</title>
</head>
<body bgcolor="white">
<h1><center>Converter</center></h1>
<hr>
<p>Enter an amount to convert:</p>
<form method="get">
<input type="text" name="amount" size="25">
<br>
<p>
<input type="submit" value="Submit">
<input type="reset" value="Reset">
</form>
<%
String amount = request.getParameter("amount");
if ( amount != null && amount.length() > 0 ) {
BigDecimal d = new BigDecimal (amount);
%>
<p><%= amount %> dollars are
<%= converter.dollarToYen(d) %> Yen.
<p><%= amount %> Yen are
<%= converter.yenToEuro(d) %> Euro.
<%
}
%>
</body>
</html>
Compiling the Web Client
The J2EE server automatically compiles Web clients that are JSP pages. If the Web client were a servlet, you would have to compile it.
Packaging the Web Client
To package a Web client, you run the New Web Component wizard of the
deploytool
utility. During this process the wizard performs the following tasks.- Creates the Web application deployment descriptor
- Adds the component files to a WAR file
- Adds the WAR file to the application's
ConverterApp.ear
file
After the packaging process, you can view the deployment descriptor by selecting ToolsDescriptor Viewer.
To start the New Web Component wizard, select FileNewWeb Component. The wizard displays the following dialog boxes.
- Introduction dialog box
- WAR File dialog box
- Select Create New WAR File In Application.
- In the combo box, select
ConverterApp
. - In the WAR Display Name field, enter
ConverterWAR
. - Click Edit.
- In the tree under Available Files, locate the
j2eetutorial/examples/build/ejb/converter
directory. - Select
index.jsp
and click Add. - Click OK.
- Click Next.
- Choose Component Type dialog box
- Component General Properties dialog box
Specifying the Web Client's Enterprise Bean Reference
When it invokes the
lookup
method, the Web client refers to the home of an enterprise bean:Object objRef = ic.lookup("java:comp/env/ejb/TheConverter");
You specify this reference as follows:
- In the tree, select
ConverterWAR
. - Select the EJB Refs tab.
- Click Add.
- In the Coded Name column, enter
ejb/TheConverter
. - In the Type column, select Session.
- In the Interfaces column, select Remote.
- In the Home Interface column, enter
ConverterHome
. - In the Local/Remote Interface column, enter
Converter
.
No comments:
Post a Comment