トップページ -> プログラミング -> Tomcat を用いた Java サーブレット・プログラミング -> Eclipse を使用しての Java サーブレット+データベース・プログラム開発
[サイトマップへ], [サイト内検索へ]

Eclipse を使用しての Java サーブレット+データベース・プログラム開発

この Web ページでは, Eclipse を使い, Java サーブレットプログラムを作る手順を,見本となるプログラムと図解で説明する. ここでの Java サーブレットプログラムは,JDBC を使って,リレーショナルデータベースを操作します.

【補足説明】

下記の 2つのサーバは別物です. 2つを同時に動かすことはできません(ポートを奪い合うことができないので).一方を動かすときは,もう一方を止めることになる.

  1. Eclipse 内部の tomcat サーバ:

    Eclipse では,Eclipse 内部の tomcat サーバが動き, Java サーブレットの動作テストなどに使う.

  2. 公開 tomcat サーバ:

    Eclipse とは無関係の tomcat サーバ(C:\tomcat55\bin\tomcat5w.exe 等で起動する Tomcat サーバのこと).当然, 公開 tomcat サーバが管理するディレクトリも Eclipse とは独立している.

なお,「Eclipse 内部の tomcat サーバ」を使えるようには, Eclipse で「新規サーバの定義」を行う必要があります.これは,1回行うだけで十分です.


必要となるソフトウエア

あらかじめ決めておく事項と設定内容

前もって,Tomcat インストールディレクトリを調べておいてください.

 

前もって, Spring 2 インストールディレクトリを調べておいてください.この Web ページでは,次のように書きます.

データベースシステムに関する項目

データベースシステムに関するいくつかの設定内容があります. この Web ページでは,設定内容を下記のように書きますので, 違う設定にする場合には, この Web ページの説明を読み替えてください.


テスト用データベースの作成

テスト用データベースとして,下記の SQL コマンドで,テーブル commodity が作られ,データが入っていること.

      CREATE TABLE commodity (
          type INTEGER primary key not null,
          name VARCHAR(32) not null,
          price INTEGER );
      INSERT INTO commodity VALUES( 1, 'apple', 50 );
      INSERT INTO commodity VALUES( 2, 'orange', 20 );
      INSERT INTO commodity VALUES( 3, 'strawberry', 100 );
      INSERT INTO commodity VALUES( 4, 'watermelon', 150 );
      INSERT INTO commodity VALUES( 5, 'melon', 200 );
      INSERT INTO commodity VALUES( 6, 'banana', 100 );
      SELECT * FROM commodity;

※ SQL の実行は,Eclipse のデータツール・プラットホーム を使って,簡単にできる. データツール・プラットホームの使用法については, MySQLPostgreSQLJava DB (Derby) の場合に分けて,別のページで説明している.


Eclipse での操作手順

以下,Eclipse を使う. プロジェクトの作成クラスの定義実行という一連の操作を,図解で説明する.

Eclipse の使用にあたって,事前に決めておく事項

Java サーブレット・プログラムを動かすために,Eclipse のプロジェクト等を作ります. この Web ページでは,Eclipse のプロジェクト名,Java パッケージ名,Java サーブレットのクラス名は次のように記述します. (すでに同じ名前のプロジェクトがある,といったときは,プロジェクト名を変えてください).

(Java DB (Derby) を使うときのみ) Apache Derby ネーチャーの追加と,サーバの開始

Java DB (Derby) を使うときに限り,プロジェクトへのApache Derby ネーチャーの追加 と,Java DB (Derby) サーバの開始を行う. これは, Java DB (Derby) を使うための追加的な設定です

  1. プロジェクト・エクスプローラで,プロジェクト名 hoge右クリック
  2. 「Apache Derby」→「Apache Derby ネーチャーの追加」

    「Apache Derby」が候補として現れないときは, Java DB (Derby) インストール の手順に従って,インストールと設定を行う.

  3. 「Apache Derby」→「Derby ネットワーク・サーバの開始」

    ポート1527 で Derby サーバが起動します.

    「Derby ネットワーク・サーバの開始」が選べない状態になっているときは, すでに開始済みなので,この手順は不要.

リレーショナルデータベース・ソフトウエアとして,Java DB (Derby) 以外を使う場合は,上記は不要です.

プロジェクトへの Spring プロジェクト・ネイチャーの追加

今度は,Spring JDBC を使うための設定です.

プロジェクトへの Spring プロジェクト・ネーチャーの追加を,次の操作で行う.

  1. プロジェクト・エクスプローラで,プロジェクト名 hoge右クリック

    [image]
  2. Spring ツール (Spring Tools)」→「Spring プロジェクト・ネーチャーの追加」と操作.

    Spring ツール (Spring Tools)」が候補として現れないときは, Eclipse の SpringIDE プラグイン の手順に従って,インストールを行う.

  3. プロジェクトの下に,「Spring Elements」が増えるので確認しておく.

    プロジェクト名 HelloWorld の左横の 「+」をクリックして展開すると, 「Spring Elements」が増えている. (Spring プロジェクト・ネーチャーの追加ができたことが分かる).

    [image]

    WebContent\WEB-INF\lib への,jar ファイルのインポート

    次の2種類の jar ファイルを,今度は,WebContent\WEB-INF\lib にインポートします.

    プロジェクトの WebContent\WEB-INF\lib へのインポートを行う手順を下記に示す.

    1. プロジェクト構成物の表示

      プロジェクト・エクスプローラで, プロジェクト名 hoge の左横の「+」をクリックして展開すると,「Java リソース; src」などが現れる(その他,いろいろ,プロジェクトの構成物が現れる).

      ※ すでに展開済みのときは,この手順は不要.

      [image]
    2. WebContent の展開

      WebContent の左横の「+」をクリックして展開する.

      ※ すでに展開済みのときは,この手順は不要.

      [image]
    3. WEB-INF の展開

      WEB-INF の左横の「+」をクリックして展開する.

      ※ すでに展開済みのときは,この手順は不要.

      [image]
    4. WEB-INF の下の lib を右クリックし,「インポート」を選ぶ.

      [image]
    5. インポート・ソースの選択

      一般」→「ファイルシステム」と操作した後, 「次へ」をクリック.

      [image]
    6. ファイルの指定

      インポートの手順は下記の通りである.

      1. 今出ているウインドウで,ソース・ディレクトリとして,各ファイルのディレクトリを指定.
      2. すると,ソース・ディレクトリの下に,ファイルの一覧が表示される. ここで,インポートすべきファイルを選ぶ. インポートすべきファイルをチェックする
      3. 以上の操作の後,「終了」をクリック.

      [image]

      インポートするファイルが複数あるので, lib を右クリックし,「インポート」を選ぶという手順に戻って,やり直す必要があります. (つまり,ファイルの数だけ,インポートの操作を繰り返す). 上にも書きましたが,インポートすべきファイルは,次の2種類です.

      • Spring 2 に関する次の 2 つの jar ファイル
        C:\Program Files\Java\spring-framework-2.5\dist\spring.jar
        C:\Program Files\Java\spring-framework-2.5\lib\jakarta-commons\commons-logging.jar
        

        上記のファイルが現れないときは,Spring 2 インストール の手順に従ってインストールを行う.

      • JDBC の jar ファイル
        • PostgreSQL の場合:

          C:\Program Files\psqlJDBC\postgresql-8.3-603.jdbc4.jar をインポート

        • MySQL の場合:

          C:\Program Files\Java\mysql-connector-java-5.1.6\mysql-connector-java-5.1.6-bin.jar をインポート

          JDBC の jar ファイルが無い,というときは,MySQL Connector Java のダウンロードの Web ページを見てください.

        • Java DB の場合:

          C:Program Files\eclipse3.5\eclipse\plugins\org.apache.derby.core_10.5.1\derby.jar をインポート

    7. インポートの結果,ファイルが増える

      インポートの結果,ファイルが増えたことを確認したいときは,プロジェクト・エクスプローラで,「lib」を展開する.

      [image]

      Java パッケージ作成

      Eclipse のプロジェクト・エクスプローラを使って, Java パッケージを作成します. Java パッケージ名には hoge.hoge.com のようなドメイン名を付ける習慣があることに注意してください. この Web ページでは,作成するJava パッケージ名は,hoge.hoge.com と書きます. (Java パッケージ名を変えるときは,読み替えてください).

      1. (もし,プロジェクト・エクスプローラが開いていなければ)プロジェクト・エクスプローラを開く

        「ウインドウ」→「ビューの表示」→「プロジェクト・エクスプローラ」 と操作します.

        Java パッケージの作成,クラスの作成などの作業は,プロジェクト・エクスプローラで行うことにします.

      2. Java パッケージを新規作成すべきプロジェクトの選択

        プロジェクト・エクスプローラに,プロジェクト一覧が表示されているはずです. Java パッケージを新規作成したいプロジェクト名 hoge右クリックして, 「新規」→「パッケージ」と操作します.

        [image]
      3. Java パッケージ名の設定

        「Java パッケージ (Java package)」名前として,Java パッケージ名 hoge.hoge.comを記入する.

        その後,「終了」をクリック.

        [image]
      4. Java パッケージの確認

        プロジェクト・エクスプローラにおいて, Java パッケージ hoge.hoge.com が増えていることを確認する.

        ※ プロジェクト・エクスプローラで, Java パッケージ名 hoge.hoge.comが表示されていないときは, プロジェクト hoge の左横の「+」をクリックして展開した後, 下の 「Java リソース; src」の左横の「+」をクリックして展開して下さい.

        [image]

        サーブレットの作成

        1. 新規サーブレットの作成の開始

          プロジェクト・エクスプローラにおいて, サーブレットを作成したいJava パッケージ名 hoge.hoge.com右クリック

          ※ プロジェクト・エクスプローラで, Java パッケージ名 hoge.hoge.comが表示されていないときは, プロジェクト名の下の 「Java リソース; src」を展開して下さい.

          [image]
        2. 新規 (New)」→「その他 (Other)」と操作する.
        3. サーブレットの選択

          サーブレットを作成したいので, 「Web」→「サーブレット (Servlet)」と操作し, 「次へ」をクリックします.

          [image]
        4. サーブレットのクラス名等の指定

          新規に作成するサーブレットについて,Java パッケージ名,クラス名等を入力できるウインドウが開くので,設定を行う.

          1. 「Java パッケージ (Java package)」(3行目): Java パッケージ名 「hoge.hoge.com」を設定.

            ※ 「hoge.hoge.com」になっていなければ修正すること.

          2. 「クラス名」(4行目の「名前」のところ): HelloWorld

          [image]
        5. 次はデフォルトのままでよい

          次へ」をクリックします.

          [image]
        6. 次はデフォルトのままでよい

          終了」をクリックします.

          [image]
        7. 作成されたクラスの確認

          プロジェクト・エクスプローラで, Java パッケージ名 hoge.hoge.com の左横の「+」をクリックして展開すると, クラスファイル HelloWorld.java が現れるはず.確認しておく.

          [image]

          クラス定義と実行

          1. プロジェクト構成物の表示

            プロジェクト・エクスプローラで, プロジェクト名 hoge の左横の「+」をクリックして展開すると,「Java リソース; src」などが現れる(その他,いろいろ,プロジェクトの構成物が現れる).

            ※ すでに展開済みのときは,この手順は不要.

            [image]
          2. Java パッケージ一覧の表示

            プロジェクト・エクスプローラで, 「Java リソース; src」の左横の「+」をクリックして展開すると,Java パッケージ一覧などが現れる.

            ※ すでに展開済みのときは,この手順は不要.

            [image]
          3. クラスファイル一覧の表示

            プロジェクトエクスプローラで, 先ほど作成したJava パッケージ名 hoge.hoge.com の左横の「+」をクリックすると, クラスファイル一覧が現れる.

            ※ すでに展開済みのときは,この手順は不要.

            [image]
          4. 定義したいクラスのファイルを開く

            HelloWorld クラスを定義したいので, プロジェクト・エクスプローラの クラスファイル一覧の中から, 「HelloWorld.java」をダブルクリックします. すると,エディタが開きます.

            このように,Eclipse のプロジェクト・エクスプローラで,定義したいクラスの「クラス名.java」ダブルクリックすると,エディタが開くことになっています.

            [image]

            ※ なお,別のクラスを追加したいときは, Java パッケージ名を右クリックして「新規」→「クラス」です.

          5. エディタでクラス HelloWorld を定義する

            下記のクラス定義をカットアンドペーストしてみて下さい(テスト用に作ったクラス定義です). (Java パッケージ名を「hoge.hoge.com」と書いているので,Java パッケージ名を別の名前にしている場合には,適切に読み替えてください).

            ----------------------ここから---------------------
            package hoge.hoge.com;
            
            import java.io.*;
            import javax.servlet.ServletException;
            import javax.servlet.http.HttpServlet;
            import javax.servlet.http.HttpServletRequest;
            import javax.servlet.http.HttpServletResponse;
            
            import java.sql.*;
            import java.text.DecimalFormat;
            import java.util.Properties;
            
            /**
             * Servlet implementation class for Servlet: HelloWorld
             *
             */
             public class HelloWorld extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet {
                    // 決まり文句
                    private static String PostgresJDBCDriver = "org.postgresql.Driver";
                    private static String MySQLJDBCDriver = "org.gjt.mm.mysql.Driver";
                    private static String JavaDBJDBCDriver = "org.apache.derby.jdbc.EmbeddedDriver";
                    private static String HiRDBDriver = "JP.co.Hitachi.soft.HiRDB.JDBC.PrdbDriver";
                    // 下記の変数を正しく設定する
                    // DBNAME, USER, PASS, JDBCDriver, DBURL
                    
                    // PostgreSQL 用デフォルト
                    // Eclipse で PostgreSQL を使いたいときは,次の手順で,WebContent\WEB-INF\lib にインポートしておく.
                    //     WebContent\WEB-INF\lib を右クリック.「一般」→「ファイルシステム」
                    //     その後インポートすべきファイルとして,次のファイルを指定
                    //       C:\Program Files\psqlJDBC\postgresql-8.3-603.jdbc4.jar
                    final private static String DBNAME = "testdb"; // Database Name
                    final private static String USER = "testuser"; // user name for DB.
                    final private static String PASS = "hoge$#34hoge5"; // password for DB.
                    final private static String JDBCDriver = PostgresJDBCDriver;
                    final private static String DBURL = "jdbc:postgresql://localhost/" + DBNAME;
            
                    // MySQL 用デフォルト
                    // Eclipse で MySQL を使いたいときは,次の手順で,WebContent\WEB-INF\lib にインポートしておく.
                    // http://dev.mysql.com/downloads/connector/ から,Connector/J をダウンロード
                    // c:\Program Files\Java\mysql-connector-java-5.1.6\ に置く.
                    //     WebContent\WEB-INF\lib を右クリック.「一般」→「ファイルシステム」
                    //     その後インポートすべきファイルとして,次のファイルを指定
                    //       c:\Program Files\Java\mysql-connector-java-5.1.6\mysql-connector-java-5.1.6-bin.jar を追加
                    // final private static String DBNAME = "testdb"; // Database Name
                    // final private static String USER = "testuser"; // user name for DB.
                    // final private static String PASS = "hoge$#34hoge5"; // password for DB.
                    // final private static String JDBCDriver = MySQLJDBCDriver;
                    // final private static String DBURL = "jdbc:mysql://localhost/" + DBNAME;   
            
                    // JavaDB用デフォルト
                    // final private static String DBNAME = "dbdir;create=true"; // Java DB の場合は,Java DB データベースディレクトリ(相対)
                    // final private static String DBDIR = "C:\\Program Files\\eclipse3.5\\eclipse\\"; // データベースが存在するディレクトリ
                            // DTP, DBViewer などを使ってデータベースを生成した場合は Eclipse インストールディレクトリ
                            // ij などを使ってデータベースを生成した場合は,c:\\<ワークスペース>\\<プロジェクト名>
                    // final private static String USER = ""; // user name for DB. Java DB (Derby) の場合は空
                    // final private static String PASS = ""; // password for DB. Java DB (Derby) の場合は空
                    // final private static String JDBCDriver = JavaDBJDBCDriver;
                    // final private static String DBURL = "jdbc:derby:" + DBDIR + DBNAME;
            
                    // HiRDB用デフォルト
                    // Eclipse で HiRDB を使いたいときは,次の手順で,WebContent\WEB-INF\lib にインポートしておく.
                    //     WebContent\WEB-INF\lib を右クリック.「一般」→「ファイルシステム」
                    //     その後インポートすべきファイルとして,次のファイルを指定
                    //       C:\win32app\hitachi\hirdb_s\CLIENT\UTL\pdjdbc.jar
                    // ユーザ名,パスワード: C:/windows/HiRDB.iniのPDUSERの値を調べておく
                    // final private static String USER = "ユーザ名"; // user name for HiRDB. see C:/windows/HiRDB.ini
                    // final private static String PASS = "パスワード"; // password for HiRDB. see C:/windows/HiRDB.ini
                    // final private static String JDBCDriver = HiRDBDriver;
                    // final private static String HiRDBServerName = "hitachi-664320D"; // HiRDB サーバのコンピュータ名
                    // final private static String DBURL = "jdbc:hitachi:PrdbDrive://DBID=22200,DBHOST=" + HiRDBServerName + ",ENCODELANG=MS932"; // 'DBID=22200' is in "conf\pdsys";
            
                    // この先は決まり文句
                    private static Statement stmt = null;
                    
                    /* (non-Java-doc)
                 * @see javax.servlet.http.HttpServlet#HttpServlet()
                 */
                public HelloWorld() {
                    super();
                }       
                
                /* (non-Java-doc)
                 * @see javax.servlet.http.HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
                 */
                protected void doGet(HttpServletRequest request, HttpServletResponse response)
                    throws ServletException, IOException {
                    // Connection
                    try {
                        connect( USER, PASS );
                        // 実行するSQL文と,出力フォーマットを記述する
            
                        ResultSet rs = execute( "select * from commodity" );;
                        DecimalFormat dformat = new DecimalFormat ("#,###円");
                        
                        /* HTTP レスポンス */
                        response.setContentType("text/html;charset=iso-2022-jp");
                        PrintWriter out = response.getWriter();
                        out.println("<HTML>");
                        out.println("<p>");
                        out.println("Database");
                        out.println("</HTML>");
                       
                        while(rs.next()){         
                            int t = rs.getInt("type");
                                String n = rs.getString("name");
                                int p = rs.getInt("price");
                                out.println("<p>" + t + " " + n + " " + dformat.format( p ) );
                        }
            
                        rs.close();
                        stmt.close();
                        disconnect();
                    }
                    catch (Exception e) {
                        // Error Message and Error Code
                        System.out.print(e.toString());
                        if (e instanceof SQLException) {
                            System.out.println("Error Code:" + ((SQLException)e).getErrorCode());
                        }
                        // Print Stack Trace
                        e.printStackTrace();
                        if (conn != null) {
                            try {
                                conn.rollback();
                                conn.close();
                            } catch (SQLException e1) {
                                e1.printStackTrace();
                            }
                        }
                    }    
                }
                
                /*
                 *  Service Functions
                 *  ここから先は,決まり文句を関数化したもの.
                 */
                static Connection conn = null;
                // database open
                public static void connect( String user, String pass ) 
                throws SQLException, ClassNotFoundException {
                    try {
                        // JDBC Driver Loading
                        Class.forName(JDBCDriver).newInstance();
                        System.setProperty("jdbc.driver",JDBCDriver);
                    }
                    catch (Exception e) {
                        // Error Message and Error Code
                        System.out.print(e.toString());
                        if (e instanceof SQLException) {
                            System.out.println("Error Code:" + ((SQLException)e).getErrorCode());
                        }
                        // Print Stack Trace
                        e.printStackTrace();
                    }
                    try {
                        // Connection
                        if ( user.isEmpty() && pass.isEmpty() ) {
                            conn = DriverManager.getConnection(DBURL);            
                        }
                        else {
                            Properties prop = new Properties();
                            prop.put("user", user);
                            prop.put("password", pass);
                            conn = DriverManager.getConnection(DBURL,prop);    
                        }
                    }
                    catch (Exception e) {
                        // Error Message and Error Code
                        System.out.print(e.toString());
                        if (e instanceof SQLException) {
                            System.out.println("Error Code:" + ((SQLException)e).getErrorCode());
                        }
                        // Print Stack Trace
                        e.printStackTrace();
                        if (conn != null) {
                            conn.rollback();
                            conn.close();
                        }
                    }
                }
                // database close
                public static void disconnect()
                    throws SQLException {
                    try {
                        conn.close();
                    }
                    catch (Exception e) {
                        // Error Message and Error Code
                        System.out.print(e.toString());
                        if (e instanceof SQLException) {
                            System.out.println("Error Code:" + ((SQLException)e).getErrorCode());
                        }
                        // Print Stack Trace
                        e.printStackTrace();
                        if (conn != null) {
                            conn.rollback();
                            conn.close();
                        }
                    }
                }
                public static ResultSet execute( String sql )
                    throws SQLException {
                    try {    
                        conn.setReadOnly(true);
                        // Execute 'commit' Automatically after each SQL
                        // conn.setAutoCommit(true);         
                        // Query Exection          
                        stmt = conn.createStatement();
                        return stmt.executeQuery(sql);
                    }
                    catch (Exception e) {
                        // Error Message and Error Code
                        System.out.print(e.toString());
                        if (e instanceof SQLException) {
                            System.out.println("Error Code:" + ((SQLException)e).getErrorCode());
                        }
                        // Print Stack Trace
                        e.printStackTrace();
                        if (conn != null) {
                            conn.rollback();
                            conn.close();
                        }
                        return null;
                    }
                }      
                
                /* (non-Java-doc)
                 * @see javax.servlet.http.HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
                 */
                protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
                    // TODO Auto-generated method stub
                }                
            }
            ----------------------ここまで----------------------
            
          6. ソースを保存

            「ファイル」→「保管」または CTRL+S で保存される. 保存時にコンパイルされる

            コンパイル時のエラーや警告があれば, Eclipse 内の問題・ビューに表示されるので確認する.

          7. 下記の「Java サーブレット・プログラムのテスト実行」に進んでください.

            Java サーブレット・プログラムのテスト実行

            Eclipse のプロジェクト・エクスプローラを使用して,上記で作ったJava サーブレットのプログラム をテスト実行してみる.

            1. 実行したいサーブレットのクラスを選び,右クリック

              Eclipse のプロジェクト・エクスプローラで,実行したいクラス名.java (つまり HelloWorld.java)右クリック

              [image]
            2. 実行 (Run As)」→「サーバーで実行 (Run on Server)」と操作
            3. サーバの選択

              ウインドウが開くので, 「ローカルホストの Tomcat v5.5 サーバ」が選択されていることを確認の後,「次へ (Next)」をクリック.

              [image]
            4. 次はデフォルトのままでよい

              終了」をクリック.

              [image]

              下記のエラーが出て,Eclipse 内部の Tomcat サーバが起動しない場合には,C:\tomcat55\bin\tomcat5w.exe を使い,公開 Tomcat サーバを停止する

              ※ すでに,C:\tomcat55\bin\tomcat5w.exe などを使って,「公開 Tomcat サーバを稼働させている」ときは, Eclipse 内部の Tomcat サーバが起動しない(ポートを奪い合うので)ので, C:\tomcat55\bin\tomcat5w.exe を使って, 公開 Tomcat サーバを停止させて下さい.

              [image]
            5. Eclipse 内部の Tomcat サーバが起動することを確認

              コンソール・ビューに表示される.

              [image]
            6. 実行結果の確認

              Eclipse の 組み込み Web ブラウザ (Internal Web ブラウザ)が開き,そこに実行結果が出る. 実行結果は次のようになる.

              Database
              
              1 apple 50円
              
              2 orange 20円
              
              3 strawberry 100円
              
              4 watermelon 150円
              
              5 melon 200円
              
              6 banana 100円
              

              [image]

              組み込みWeb ブラウザ内のアドレスバーの部分は,

              
              http://localhost:8080/hoge/HelloWorld
              

              のようになっていることを確認しておきます.(「hoge」の部分は,実際のプロジェクト名に読み替えて下さい).

            7. (参考)うまくいかない場合
              • Eclipse を再起動するとうまく動く可能性がある.
              • 「Database」とだけ表示されるが,肝心の中身が表示されない場合.

                原因としては,プログラム中に書かれたユーザ名,パスワード名,データベース論理名の記述ミスが考えられます.確認してください. あるいは,上記に書いた手順での「jar ファイルのインポート」が正しく行われていない(あるいは,この Web ページ自体のミス)可能性がある.

              • エラーメッセージが出て,Eclipse 内部の tomcat サーバ が起動しない場合.

                C:\tomcat55\bin\tomcat5w.exe を実行してみる. サーバが stop できる状態(STOP ボタンが有効になっている状態)になって いたら,「公開 Tomcat サーバを稼働させている」ということなので, エラーが出て当然. STOP ボタンを押して,公開 Tomcat サーバを停止し,もう1度,上記の操作を行う.

              • 「接続できない」という意味のエラーが出た場合.

                「Apache Derby」→「Stop Derby Network Server (Derby ネットワーク・サーバの停止)」と操作し,もう1度実行するとうまくいく場合がある.

            Java サーブレット・プログラムのデバッグについては,「Eclipse を使用しての Java サーブレット・プログラム開発」の Web ページ を見てください.


            エクスポート (Eclipse の Export 機能を利用)

            Eclipse でエクスポートを行い、単体で動くようにします。

            1. プロジェクト・エクスプローラから、エクスポートしたいプロジェクト derbydb を選択し、  右クリックメニューから、「エクスポート」を選択
            2. .選択ダイアログ
               「Web」→「WARファイル」→「次へ」
              
            3. WARエクスポートダイアログ
               Webモジュール:「derbydb」
               宛先:「C:\tomcat55\webapps\derbydb.war」
              

              混乱を防ぐために、エクスポートしたいプロジェクトの名前をそのまま付ける。

               「ソースファイルのエクスポート」「既存ファイルを上書き」→必要ならチェック  「終了」で、エクスポートが実行される

            4. Apache 側の設定

              apacheインストールディレクトリのconfフォルダ内 にあるworkers2.propertiesに以下の2行を追加

                  [uri:/derbydb/*]
                  group=lb
              
            5. 動作確認 

               直接(tomcat5w.exeから)Tomcatを実行し、Eclipseとは無関係にサーブレットが動くことを確認する。 http://localhost:8080/derbydb/HelloWorld

               また、Apacheとの連携も従来どおり行える(別途、apache サーバを起動のこと)。  なお、WEB-INFなどの、サーブレット実行に必要なディレクトリは、実行時に作成される。


            参考Webページ: http://allabout.co.jp/internet/java/closeup/CU20070119A/index4.htm

            参考Webページ: http://www.atmarkit.co.jp/fjava/javafaq/jdbc/jdbc01.html

            参考Webページ: http://d.hatena.ne.jp/benikujyaku/20070127 (Apache Derby の導入のWebページ)

            http://www.itarchitect.jp/enterprise/-/30601-3.html


          本サイトのサイトマップは,サイトマップのページをご覧下さい. 本サイト内の検索は,サイト内検索のページをご利用下さい.

          問い合わせ先: 金子邦彦(かねこ くにひこ) [image]