Liberty プロファイルへの既存の JDBC アプリケーションのデプロイ

Java™ Database Connectivity (JDBC) およびデータ・ソースを使用した既存のアプリケーションを取得し、そのアプリケーションをサーバーにデプロイすることができます。

このタスクについて

既存の JDBC アプリケーションを取得してそれを Liberty プロファイルにデプロイすることができます。このデプロイメントを完了するには、jdbc-4.0 Liberty フィーチャーを server.xml ファイルに追加します。また、サーバーに JDBC ドライバーのロケーションを指示し、JDBC ドライバーがデータベースへの接続に使用するプロパティーを指定するコードも追加する必要があります。

この例では、サーブレット・アプリケーションを拡張するか、ここに提供されているサーブレット・アプリケーションを使用して、 JDBC ドライバーを通じて使用される対話性が、予期したとおりに機能しているかどうかをテストすることができます。

手順

  1. サーバーを作成します
  2. サーバーを始動します
  3. 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.
  4. データベース・タイプとデータ・ソース・ロケーションを server.xml ファイルに指定します。

    ここで、path_to_derby は、Derby がインストールされているオペレーティング・システム上のロケーションで、lib は、derby.jar が置かれているフォルダーで、data/exampleDB は、存在しない場合に作成されるディレクトリーです。

    以下に例を示します。
    <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>
    データ・ソース定義のコーディング用の他のオプションについては、『構成ファイルにおける Ref タグの使用』を参照してください。
  5. 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 Profile</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'"); would 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();
                 } 
               }
           }
        }
    }
  6. アプリケーションをコンパイルします。

    ここで、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 での例:
    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
    javac コマンドが認識されない場合は、オペレーティング・システムの PATH 環境変数に Java bin ディレクトリーが含まれていることを確認してください。
  7. アプリケーションをサーバーに追加します
    この例で、JDBC アプリケーションはサーバーの dropins ディレクトリーに入れられます。
    ...¥dropins¥HelloWorldApp.war¥WEB-INF¥classes¥wasdev¥HelloWorld

    wasdev ディレクトリーは、HelloWorld.java で使用されているパッケージ名と同じパッケージ名を使用します。

  8. JDBC アプリケーションが機能していることを確認します。
    この例では、次の URL にアクセスします。
    http://localhost:9080/HelloWorldApp/HelloWorld

    ポート 9080 は、Liberty サーバーによって使用されるデフォルトの HTTP ポートです。server.xml ファイルを調べることにより、サーバーがどの HTTP ポートに設定されているかを確認できます。

    この例のブラウザー上の出力は次のようになります。

    Hello World Liberty Profile
    The county for myHomeCity is myHomeCounty

トピックのタイプを示すアイコン タスク・トピック

インフォメーション・センターに関するご使用条件 | フィードバック


タイム・スタンプ・アイコン 最終更新: 2015 年 6 月 17日
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=phil&product=was-libcore-mp&topic=twlp_dep_jdbc
ファイル名: twlp_dep_jdbc.html