Flylib.com

Books Software

 
 
 

J2EE.9.4 Naming


J2EE.9.4 Naming

As with all J2EE components , application clients use JNDI to look up enterprise beans, get access to resource managers, access configurable parameters set at deployment time, etc. Application clients use the java: JNDI namespace to access these items; see Chapter J2EE.5, "Naming," for details.


J2EE.9.5 Application Programming Interfaces

Application clients have all the facilities of the Java 2 Platform, Standard Edition (subject to security restrictions), as well as various standard extensions, as described in Chapter J2EE.6, "Application Programming Interface." Each application client executes in its own Java virtual machine. Application clients start execution at the main method of the class specified in the Main-Class attribute in the manifest file of the application client's JAR file (although note that application client container code will typically execute before the application client itself, in order to prepare the environment of the container, install a SecurityManager , initialize the name service client library, etc.).


J2EE.9.6 Packaging and Deployment

Application clients are packaged in JAR files and include a deployment descriptor similar to other J2EE application components. The deployment descriptor describes the enterprise beans and external resources referenced by the application. As with other J2EE application components , access to resources must be configured at deployment time, names assigned for enterprise beans and resources, etc.

The tool used to deploy an application client, and the mechanism used to install the application client, is not specified. Very sophisticated J2EE products may allow the application client to be deployed on a J2EE server and automatically made available to some set of (usually intranet) clients. Other J2EE products may require the J2EE application bundle containing the application client to be manually deployed and installed on each client machine. And yet another approach would be for the deployment tool on the J2EE server to produce an installation package that could be taken to each client to install the application client. There are many possibilities here and this specification doesn't prescribe any one; it only defines the package format for the application client and the things that must be possible during the deployment process.

How an application client is invoked by an end user is unspecified. Typically a J2EE product provider will provide an application launcher that integrates with the application client machine's native operating system, but the level of such integration is unspecified.


J2EE.9.7 J2EE: application-client XML DTD

The XML grammar for a J2EE application client deployment descriptor is defined by the J2EE: application-client document type definition. The root element of the deployment descriptor for an application client is application-client . The content of the XML elements is in general case sensitive. This means, for example, that <res-auth>Container</res-auth> must be used, rather than <res- auth>container</res-auth> .

All valid application-client deployment descriptors must contain the following DOCTYPE declaration:

<!DOCTYPE application-client PUBLIC "-//Sun Microsystems, 
Inc.//DTD J2EE Application Client 1.2//EN" "http:// 
java.sun.com/j2ee/dtds/application-client_1_2.dtd">

Figure J2EE.9-1 shows the structure of the J2EE: application-client XML DTD.

Figure J2EE.9-1. J2EE :application-client XML DTD Structure

<!--
The application-client element is the root element of an application
client deployment descriptor. 
The application client deployment descriptor describes the EJB
components and external resources referenced by the application
client. 
--> 
<!ELEMENT application-client (icon?, display-name, description?,
env-entry*, ejb-ref*, resource-ref*)> 

<!--
The description element is used to provide text describing the
parent element. The description element should include any
information that the application-client file producer wants to
provide to the consumer of the application-client file (i.e., to the 
Deployer). Typically, the tools used by the application-client file
consumer will display the description when processing the parent
element that contains the description. 
--> 
<!ELEMENT description (#PCDATA)> 

<!--
The display-name element contains a short name that is intended to
be displayed by tools. 
--> 
<!ELEMENT display-name (#PCDATA)> 

<!--
The ejb-link element is used in the ejb-ref element to specify that
an EJB reference is linked to an enterprise bean in the encompassing
J2EE Application package. The value of the ejb-link element must be
the ejb-name of an enterprise bean in the same J2EE Application
package. Used in: ejb-ref 
Example: <ejb-link>EmployeeRecord</ejb-link> 
--> 
<!ELEMENT ejb-link (#PCDATA)> 

<!--
The ejb-ref element is used for the declaration of a reference to
an enterprise bean's home. The declaration consists of an optional
description; the EJB reference name used in the code of the
referencing application client; the expected type of the referenced
enterprise bean; the expected home and remote interfaces of the 
referenced enterprise bean; and an optional ejb-link information.
The optional ejb-link element is used to specify the referenced
enterprise bean. 
--> 
<!ELEMENT ejb-ref (description?, ejb-ref-name, ejb-ref-type, home,
remote, ejb-link?)> 

<!--
The ejb-ref-name element contains the name of an EJB reference. The
EJB reference is an entry in the application client's environment.
It is recommended that name is prefixed with "ejb/". Used in: ejb-ref 
Example: <ejb-ref-name>ejb/Payroll</ejb-ref-name> 
--> 
<!ELEMENT ejb-ref-name (#PCDATA)> 

<!--
The ejb-ref-type element contains the expected type of the
referenced enterprise bean. The ejb-ref-type element must be one of
the following: 
<ejb-ref-type>Entity</ejb-ref-type> 
<ejb-ref-type>Session</ejb-ref-type> 
Used in: ejb-ref 
--> 
<!ELEMENT ejb-ref-type (#PCDATA)> 

<!--
The env-entry element contains the declaration of an application
client's environment entries. The declaration consists of an
optional description, the name of the environment entry, and an
optional value. 
--> 
<!ELEMENT env-entry (description?, env-entry-name, env-entry-type,
env-entry-value?)> 

<!--
The env-entry-name element contains the name of an application
client's environment entry. Used in: env-entry 
Example: <env-entry-name>EmployeeAppDB</env-entry-name> 
--> 
<!ELEMENT env-entry-name (#PCDATA)> 

<!--
The env-entry-type element contains the fully-qualified Java type
of the environment entry value that is expected by the application
client's code. The following are the legal values of env-entry-type:
java.lang.Boolean, java.lang.String, java.lang.Integer,
java.lang.Double, java.lang.Byte, java.lang.Short, java.lang.Long, 
and java.lang.Float. 

Used in: env-entry 

Example: 
<env-entry-type>java.lang.Boolean</env-entry-type> 
--> 
<!ELEMENT env-entry-type (#PCDATA)> 

<!--
The env-entry-value element contains the value of an application
client's environment entry. The value must be a String that is valid
for the constructor of the specified type that takes a single String
parameter. 

Used in: env-entry 

Example: 
<env-entry-value>/datasources/MyDatabase</env-entry-value> 
--> 
<!ELEMENT env-entry-value (#PCDATA)> 

<!--
The home element contains the fully-qualified name of the enterprise
bean's home interface. 
Used in: ejb-ref 
Example: <home>com.aardvark.payroll.PayrollHome</home> 
--> 
<!ELEMENT home (#PCDATA)> 

<!--
The icon element contains a small-icon and large-icon element which
specify the URIs for a small and a large GIF or JPEG icon image used
to represent the application client in a GUI tool. 
--> 
<!ELEMENT icon (small-icon?, large-icon?)> 

<!--
The large-icon element contains the name of a file containing a large
(32 x 32) icon image. The file name is a relative path within the
application-client jar file. The image must be either in the JPEG
or GIF format, and the file name must end with the suffix ".jpg" or
".gif" respectively. The icon can be used by tools. 
Example: 
<large-icon>lib/images/employee-service-icon32x32.jpg</large-icon> 
--> 
<!ELEMENT large-icon (#PCDATA)> 

<!--
The remote element contains the fully-qualified name of the
enterprise bean's remote interface. 
Used in: ejb-ref 
Example: 
<remote>com.wombat.empl.EmployeeService</remote> 
--> 
<!ELEMENT remote (#PCDATA)> 

<!--
The res-auth element specifies whether the enterprise bean code
signs on programmatically to the resource manager, or whether the
container will sign on to the resource manager on behalf of the bean.
In the latter case, the container uses information that is supplied
by the deployer. 
The value of this element must be one of the two following: 
<res-auth>Application</res-auth> 
<res-auth>Container</res-auth> 
--> 
<!ELEMENT res-auth (#PCDATA)> 

<!--
The res-ref-name element specifies the name of the resource factory
reference name. The resource factory reference name is the name of
the application client's environment entry whose value contains the
JNDI name of the data source. 
Used in: resource-ref 
--> 
<!ELEMENT res-ref-name (#PCDATA)> 

<!--
The res-type element specifies the type of the data source. The type
is specified by the Java interface (or class) expected to be
implemented by the data source. 
Used in: resource-ref 
--> 
<!ELEMENT res-type (#PCDATA)> 

<!--
The resource-ref element contains a declaration of application
clients's reference to an external resource. It consists of an
optional description, the resource factory reference name, the
indication of the resource factory type expected by the application
client's code, and the type of authentication (bean or container). 

Example: 
<resource-ref> 
<res-ref-name>EmployeeAppDB</res-ref-name> 
<res-type>javax.sql.DataSource</res-type> 
<res-auth>Container</res-auth> 
</resource-ref> 
--> 
<!ELEMENT resource-ref (description?, res-ref-name, res-type, 
res-auth)> 
<!--
The small-icon element contains the name of a file containing a small
(16 x 16) icon image. The file name is a relative path within the
application-client jar file. The image must be either in the JPEG
or GIF format, and the file name must end with the suffix ".jpg" or
".gif" respectively. The icon can be used by tools. 
Example: 
<small-icon>lib/images/employee-service-icon16x16.jpg</small-icon> 
--> 
<!ELEMENT small-icon (#PCDATA)> 

<!--
The ID mechanism is to allow tools to easily make tool-specific
references to the elements of the deployment descriptor. 
 --> 
<!ATTLIST application-client id ID #IMPLIED> 
<!ATTLIST description id ID #IMPLIED> 
<!ATTLIST display-name id ID #IMPLIED> 
<!ATTLIST ejb-link id ID #IMPLIED> 
<!ATTLIST ejb-ref id ID #IMPLIED> 
<!ATTLIST ejb-ref-name id ID #IMPLIED> 
<!ATTLIST ejb-ref-type id ID #IMPLIED> 
<!ATTLIST env-entry id ID #IMPLIED> 
<!ATTLIST env-entry-name id ID #IMPLIED> 
<!ATTLIST env-entry-type id ID #IMPLIED> 
<!ATTLIST env-entry-value id ID #IMPLIED> 
<!ATTLIST home id ID #IMPLIED> 
<!ATTLIST icon id ID #IMPLIED> 
<!ATTLIST large-icon id ID #IMPLIED> 
<!ATTLIST remote id ID #IMPLIED> 
<!ATTLIST res-auth id ID #IMPLIED> 
<!ATTLIST res-ref-name id ID #IMPLIED> 
<!ATTLIST res-type id ID #IMPLIED> 
<!ATTLIST resource-ref id ID #IMPLIED> 
<!ATTLIST small-icon id ID #IMPLIED>