Despliegue de una aplicación JDBC existente en Liberty
Puede tomar una aplicación existente que utiliza JDBC (Java™ Database Connectivity) y un origen de datos y desplegar la aplicación en un servidor.
Acerca de esta tarea
Puede tomar una aplicación JDBC existente y desplegarla en Liberty. Para completar este despliegue, añada una característica JDBC de Liberty al archivo server.xml. También debe añadir código que indica al servidor la ubicación del controlador JDBC y especifica las propiedades que utiliza el controlador JDBC para conectarse a la base de datos.
El ejemplo siguiente utiliza la característica jdbc-4.0. En este ejemplo, puede ampliar la aplicación de servlet o utilizar la que se proporciona aquí para comprobar que la interactividad que se utiliza a través del controlador JDBC funciona según lo previsto.
Procedimiento
- Cree un servidor.
- Inicie el servidor.
- Añada las características de Liberty jdbc-4.0 y
servlet-3.0 al archivo server.xml.
<server> <featureManager> <feature>jdbc-4.0</feature> <feature>servlet-3.0</feature> </featureManager> </server>
Para comprobar que el servidor está funcionando y que las características se han habilitado correctamente, defina el archivo console.log, que se almacena en el directorio logs del servidor. Puede verlo utilizando cualquier editor de texto. A continuación figura un ejemplo:
[AUDIT ] CWWKF0012I: El servidor ha instalado las características siguientes: [jdbc-4.0, jndi-1.0]. [AUDIT ] CWWKF0008I: La actualización de la características se ha completado en in 0,326 segundos.
- Especifique el tipo de base de datos y la ubicación del origen de datos en el archivo server.xml.
Donde vía_acceso_a_derby es la ubicación donde se ha instalado derby en su sistema operativo, lib es la carpeta donde se halla derby.jar y data/exampleDB es el directorio que se ha creado si no existía.
Por ejemplo:
Para obtener información sobre otras opciones para codificar las definiciones de origen de datos, consulte Utilización de los códigos Ref en los archivos de configuración.<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:/vía_acceso_a_derby/data/exampleDB" createDatabase="create" /> </dataSource>
- Añada algunas sentencias create, read, update y delete de SQL en su aplicación
JDBC para comprobar la interactividad con la base de datos.
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(); // crear una tabla stmt.executeUpdate("create table cities (name varchar(50) not null primary key, population int, county varchar(30))"); // insertar un registro de prueba stmt.executeUpdate("insert into cities values ('myHomeCity', 106769, 'myHomeCounty')"); // seleccionar un registro ResultSet result = stmt.executeQuery("select county from cities where name='myHomeCity'"); result.next(); // mostrar información de la provincia de la ciudad. out.println("The county for myHomeCity is " + result.getString(1)); // descartar la tabla para limpiar y poder volver a ejecutar la prueba. stmt.executeUpdate("drop table cities"); } catch (SQLException e) { e.printStackTrace(); } finally { if (con != null){ try{ con.close(); } catch (SQLException e) { e.printStackTrace(); } } } } }
- Compile la aplicación.
Donde vía_acceso_a_liberty es la ubicación donde ha instalado Liberty en su sistema operativo y vía_acceso_a_aplic es la ubicación del archivo Java de la aplicación que desea compilar.
Ejemplo en Windows:C:\> javac -cp vía_acceso_a_liberty\wlp\dev\api\spec\com.ibm.ws.javaee.servlet.3.0_1.0.1.jar vía_acceso_a_aplic\HelloWorld.java
Ejemplo en Linux:Si no se reconoce el mandato javac, asegúrese de que dispone del directorio bin de Java en la variable de entorno PATH del sistema operativo.mo@machine01:~> javac -cp vía_acceso_a_liberty/wlp/dev/api/spec/com.ibm.ws.javaee.servlet.3.0_1.0.1.jar vía_acceso_a_aplic/HelloWorld.java
- Añada la aplicación al servidor. En este ejemplo, la aplicación JDBC se coloca en el directorio dropins del servidor:
...\dropins\HelloWorldApp.war\WEB-INF\classes\wasdev\HelloWorld
El directorio wasdev utiliza el mismo nombre de paquete que se ha utilizado en HelloWorld.java.
- Compruebe que la aplicación JDBC esté funcionando.
Para este ejemplo, vaya al URL http://localhost:9080/HelloWorldApp/HelloWorld.
El puerto 9080 es el puerto HTTP predeterminado se utiliza el servidor de Liberty. Puede comprobar en qué puerto HTTP se ha definido su servidor buscando en el archivo server.xml.
La salida en el navegador para este ejemplo es similar a la siguiente:
Hello World Liberty La provincia de myHomeCity es myHomeCounty

Nombre de archivo: twlp_dep_jdbc.html