Liberty への既存の JDBC アプリケーションのデプロイ
Java™ Database Connectivity (JDBC) およびデータ・ソースを使用した既存のアプリケーションを取得し、そのアプリケーションをサーバーにデプロイすることができます。
このタスクについて
既存の JDBC アプリケーションを取得してそれを Liberty にデプロイすることができます。このデプロイメントを完了するには、jdbc-4.0 Liberty フィーチャーを server.xml ファイルに追加します。また、サーバーに JDBC ドライバーのロケーションを指示し、JDBC ドライバーがデータベースへの接続に使用するプロパティーを指定するコードも追加する必要があります。
この例では、サーブレット・アプリケーションを拡張するか、ここに提供されているサーブレット・アプリケーションを使用して、 JDBC ドライバーを通じて使用される対話性が、予期したとおりに機能しているかどうかをテストすることができます。
手順
- サーバーを作成します。
- サーバーを始動します。
- jdbc-4.0 および servlet-3.0 の両 Liberty フィーチャーを server.xml ファイルに追加します。
<server> <featureManager> <feature>jdbc-4.0</feature> <feature>servlet-3.0</feature> </featureManager> </server>
サーバーが機能しており、フィーチャーが正常に使用可能になっていることを確認するには、console.log ファイルを調べます。このファイルは、サーバーの logs ディレクトリーに保管されています。このファイルは、任意のテキスト・エディターを使用して表示できます。以下に例を示します。
[AUDIT ] CWWKF0012I: The server installed the following features: [jdbc-4.0, jndi-1.0]. [AUDIT ] CWWKF0008I: Feature update completed in 0.326 seconds.
- データベース・タイプとデータ・ソース・ロケーションを server.xml ファイルに指定します。
ここで、path_to_derby は、Derby がインストールされているオペレーティング・システム上のロケーションで、lib は、derby.jar が置かれているフォルダーで、data/exampleDB は、存在しない場合に作成されるディレクトリーです。
以下に例を示します。
データ・ソース定義のコーディング用の他のオプションについては、『構成ファイルにおける Ref タグの使用』を参照してください。<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>
- SQL の create、read、update、および delete のステートメントをいくつか JDBC アプリケーションに追加して、データベースとの対話性をテストします。
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(); } } } } }
- アプリケーションをコンパイルします。
ここで、path_to_liberty は、Liberty をインストールしたオペレーティング・システム上のロケーションで、path_to_app は、コンパイルするアプリケーションの Java ファイルのロケーションです。
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
Linux での例:javac コマンドが認識されない場合は、オペレーティング・システムの PATH 環境変数に Java bin ディレクトリーが含まれていることを確認してください。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
- アプリケーションをサーバーに追加します。 この例で、JDBC アプリケーションはサーバーの dropins ディレクトリーに入れられます。
...¥dropins¥HelloWorldApp.war¥WEB-INF¥classes¥wasdev¥HelloWorld
wasdev ディレクトリーは、HelloWorld.java で使用されているパッケージ名と同じパッケージ名を使用します。
- JDBC アプリケーションが機能していることを確認します。 この例では、次の URL にアクセスします。
http://localhost:9080/HelloWorldApp/HelloWorld
ポート 9080 は、Liberty サーバーによって使用されるデフォルトの HTTP ポートです。server.xml ファイルを調べることにより、サーバーがどの HTTP ポートに設定されているかを確認できます。
この例のブラウザー上の出力は次のようになります。
Hello World Liberty The county for myHomeCity is myHomeCounty


http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-libcore-mp&topic=twlp_dep_jdbc
ファイル名: twlp_dep_jdbc.html