...
The <ee:persistence> element uses the persistence namespace described at http://java.sun.com/xml/ns/persistence/. Apache Geronimo uses OpenJPA for providing Java Persistence API to Java EE applications deployed in the server.
Samples
For example, the following web.xml
and geronimo-web.xml
are the deployment descriptor and Geronimo deployment plan respectively, of a web application that connects to a datasource deployed on DB2 and retrieves data from a table.
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
<resource-ref>
<res-ref-name>jdbc/DataSource</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
<res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>
<welcome-file-list>
<welcome-file>jsp/EMPdemo.jsp</welcome-file>
</welcome-file-list>
</web-app>
|
Note |
---|
The default namespace of the above XML document is With Servlet 2.5 specification, many of the declarations done through |
The web module connects to back end datasource using its JNDI name jdbc/DataSource
as declared in the web.xml
.
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
<web-app xmlns="http://geronimo.apache.org/xml/ns/j2ee/web-2.0.1"
xmlns:naming="http://geronimo.apache.org/xml/ns/naming-1.2"
xmlns:sec="http://geronimo.apache.org/xml/ns/security-2.0"
xmlns:sys="http://geronimo.apache.org/xml/ns/deployment-1.2">
<sys:environment>
<sys:moduleId>
<sys:groupId>samples</sys:groupId>
<sys:artifactId>EmployeeDemo</sys:artifactId>
<sys:version>2.5</sys:version>
<sys:type>war</sys:type>
</sys:moduleId>
<sys:dependencies>
<sys:dependency>
<sys:groupId>samples</sys:groupId>
<sys:artifactId>EmployeeDatasource</sys:artifactId>
<sys:version>2.5</sys:version>
<sys:type>rar</sys:type>
</sys:dependency>
</sys:dependencies>
</sys:environment>
<context-root>/EmployeeDemo</context-root>
<naming:resource-ref>
<naming:ref-name>jdbc/DataSource</naming:ref-name>
<naming:resource-link>jdbc/EmployeeDatasource</naming:resource-link>
</naming:resource-ref>
</web-app>
|
Note |
---|
The default namespace of the above XML document is |
Observe the various XML tags and corresponding namespaces used in the deployment plan for various purposes.
<sys:environment> .. </sys:environment>
: These elements provide the moduleid configuration and the dependencies. The moduleId elements provide the configuration name for the web module. So, when the web module is deployed, it is given the configuration name samples/samples/2.5/jar
. The dependencies elements provide the configurations and third party libraries on which the web module is dependent on. These configurations and libraries will be available to the web module via a classloader hierarchy. In this case, the web module is dependent on samples/EmployeeDatasource/2.5/rar
which is the configuration of the deployed Datasource that connects to a back end DB2 database. The Datasource deploys a database connection pool (javax.sql.Datasource)
with name jdbc/EmployeeDatasource
.
<sys:context-root> .. </sys:context-root>
: The XML elements used to provide the web context root of the web applications.
<naming:resource-ref> .. </naming:resource-ref>
: These elements help us to configure the resource references. In this case, the datasource reference jdbc/DataSource
is mapped to jdbc/EmployeeDatasource
.
In the EMPdemo.jsp
, the following java code snippet is used to obtain a connection from the datasource.
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
....
....
Context initContext = new InitialContext();
Context envContext = (Context)initContext.lookup("java:comp/env");
DataSource ds = (DataSource)envContext.lookup("jdbc/DataSource");
Connection con = ds.getConnection();
....
....
|
The above descriptor and the plan files are the simple illustrations that explain how web modules are developed and assembled for Apache Geronimo. Similarly, many other configurations can be performed in the geronimo-web.xml
.
All the XML schema files are located at <geronimo_home>/schema
directory. Please go through the .xsd
files to have a feel of XML tags that can be used in geronimo-web.xml
for configuring web applications.