Déploiement d'une application JDBC existante sur Liberty
Vous pouvez prendre une application existante, utilisant Java™ Database Connectivity (JDBC) et une source de données, et la déployer sur un serveur.
Pourquoi et quand exécuter cette tâche
Vous pouvez déployer une application JDBC existante sur Liberty. Pour effectuer ce déploiement, vous ajoutez une fonction JDBC Liberty au fichier server.xml. Vous devez aussi ajouter du code pour indiquer au serveur l'emplacement du pilote JDBC et spécifier les propriétés que le pilote JDBC utilise pour se connecter à la base de données.
L'exemple suivant utilise la fonction jdbc-4.0. Dans cet exemple, vous pouvez étendre votre application de servlet ou utiliser celle qui est fournie ici afin de vérifier que l'interactivité utilisée dans le pilote JDBC fonctionne comme prévu.
Procédure
- Créez un serveur.
- Démarrez le serveur.
- Ajoutez les fonctions
Liberty jdbc-4.0 et servlet-3.0 au
fichier server.xml.
<server> <featureManager> <feature>jdbc-4.0</feature> <feature>servlet-3.0</feature> </featureManager> </server>
Pour vérifier que le serveur fonctionne et que les fonctions ont été activées, reportez-vous au fichier console.log, qui est stocké dans le répertoire logs du serveur. Vous pouvez l'afficher avec n'importe quel éditeur de texte. Par exemple :
[AUDIT ] CWWKF0012I: Le serveur a installé les fonctions suivantes : [jdbc-4.0, jndi-1.0]. [AUDIT ] CWWKF0008I: Mise à jour de fonction terminée en 0,326 secondes.
- Spécifiez le type de base de données et l'emplacement de la source de données dans le fichier server.xml.
Où chemin_derby est l'emplacement auquel derby est installé sur votre système d'exploitation, lib est le dossier dans lequel se trouve derby.jar et data/exampleDB est le répertoire qui est créé s'il n'existe pas.
Exemple :
Pour des informations sur d'autres options de codage des définitions de source de données, voir Utilisation de balises Ref dans les fichiers de configuration.<jdbcDriver id="DerbyEmbedded" libraryRef="DerbyLib"/> <library id="DerbyLib"> <fileset dir="C:/path_to_derby/lib" includes="derby.jar"/> </library> <dataSource id="ds1" jndiName="jdbc/exampleDS" jdbcDriverRef="DerbyEmbedded"> <properties.derby.embedded databaseName="C:/path_to_derby/data/exampleDB" createDatabase="create" /> </dataSource>
- Ajoutez des instructions SQL create, read, update et delete à votre application JDBC afin de tester l'interactivité avec la base de données.
package wasdev; import java.io.*; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import javax.annotation.Resource; import javax.servlet.*; import javax.servlet.http.*; import javax.servlet.annotation.WebServlet; import javax.sql.DataSource; @WebServlet("/HelloWorld") public class HelloWorld extends HttpServlet { @Resource(name = "jdbc/exampleDS") private DataSource ds1; private Connection con = null; private static final long serialVersionUID = 1L; public HelloWorld() { super(); } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println("<H1>Hello World Liberty</H1>\n"); try { con = ds1.getConnection(); Statement stmt = null; stmt = con.createStatement(); // create a table stmt.executeUpdate("create table cities (name varchar(50) not null primary key, population int, county varchar(30))"); // insert a test record stmt.executeUpdate("insert into cities values ('myHomeCity', 106769, 'myHomeCounty')"); // select a record ResultSet result = stmt.executeQuery("select county from cities where name='myHomeCity'"); result.next(); // display the county information for the city. out.println("The county for myHomeCity is " + result.getString(1)); // drop the table to clean up and to be able to rerun the test. stmt.executeUpdate("drop table cities"); } catch (SQLException e) { e.printStackTrace(); } finally { if (con != null){ try{ con.close(); } catch (SQLException e) { e.printStackTrace(); } } } } }
- Compilez votre application.
Où chemin_liberty est l'emplacement auquel vous avez installé Liberty sur votre système d'exploitation et chemin_app est l'emplacement du fichier Java de l'application à compiler.
Exemple sous Windows :C:\> javac -cp path_to_liberty\wlp\dev\api\spec\com.ibm.ws.javaee.servlet.3.0_1.0.1.jar path_to_App\HelloWorld.java
Exemple sous Linux :Si la commande javac n'est pas reconnue, vérifiez que le répertoire bin Java figure dans la variable d'environnement PATH de votre système d'exploitation.mo@machine01:~> javac -cp path_to_liberty/wlp/dev/api/spec/com.ibm.ws.javaee.servlet.3.0_1.0.1.jar path_to_App/HelloWorld.java
- Ajoutez l'application au serveur. Dans cet exemple, l'application JDBC est placée dans le répertoire dropins du serveur :
...\dropins\HelloWorldApp.war\WEB-INF\classes\wasdev\HelloWorld
Le répertoire wasdev utilise le nom de package qui est utilisé dans HelloWorld.java.
- Vérifiez que votre application JDBC fonctionne.
Pour cet exemple, accédez à l'adresse URL http://localhost:9080/HelloWorldApp/HelloWorld.
Le port 9080 est le port HTTP par défaut qui est utilisé par le serveur Liberty. Vous pouvez vérifier le port HTTP défini pour votre serveur en consultant le fichier server.xml.
La sortie dans le navigateur pour cet exemple ressemble à la suivante :
Hello World Liberty The county for myHomeCity is myHomeCounty

Nom du fichier : twlp_dep_jdbc.html