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.earfile
After the packaging process, you can view the deployment descriptor by selecting Tools
To start the New Web Component wizard, select File
- 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/converterdirectory. - Select
index.jspand 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