JSP(tomcat)をUbuntuにインストールする。

tomcatをインストールしてJSPプログラムを走らせる手順、PHPとかよりは手間が掛かる。とりあえずメモ。

インストール

sudo apt-get install tomcat7

で勝手に入る。

が、MySQLぐらいは使いたいので

aptitude install libmysql-java libcommons-lang-java

cp /usr/share/java/mysql* /usr/share/tomcat7/lib/
cp /usr/share/java/commons-lang.jar /usr/share/tomcat7/lib/

とかしておく。

設定

/etc/tomcat7/server.xml の、Engineの下の項目に、

      <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
            <Context path="" docBase="/var/lib/tomcat7/webapps/app_name" reloadable="True">
            <Resource name="refname" auth="Container"
            type="javax.sql.DataSource"
            username="" password=""
            driverClassName="com.mysql.jdbc.Driver"
            url="jdbc:mysql://localhost/dbname?useUnicode=true&amp;characterEncoding=utf-8"
            maxActive="100" maxIdle="100" />
            </Context>

        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log." suffix=".txt"
               pattern="%h %l %u %t "%r" %s %b" />

      </Host>

とか書く。他のHost要素は要らないので削除する。

SQLへの接続もここで設定する。ユーザー名やデータベース名などを上の項目に追加する。ちなみに、

                        Context initCtx=new InitialContext();
                        Context envCtx=(Context) initCtx.lookup("java:comp/env");
                        DataSource ds=(DataSource)envCtx.lookup("refname");
                        Connection conn=ds.getConnection();

とかやると接続できる。

また、/var/lib/tomcat7/webapps/ROOT ができるが、これは削除する。削除しないとjspを実行した時に正常に走らないことがあるようだ

サーブレットのコンパイル

サーブレットをコンパイルするときには、

javac ./WEB-INF/classes/path/to/your/file.java -cp /usr/share/java/tomcat-servlet-api-3.0.jar:./WEB-INF/classes/:/usr/share/java/commons-lang.jar:/usr/share/tomcat7/lib/*

的な感じで一杯CLASSPATHを指定してあげる。
環境構築はとりあえずこんな感じでできるはず。
jarを追加したい時は/usr/share/tomcat7/lib/以下においてあげる。
実際にプログラムを書くにあたっての云々はいずれ機会があったら書く。