作成者 城風敏彦 2005/05/02
この文章では、J2EEアプリ開発支援プラグインlombozと、Strutsアプリ開発支援プラグインeasyStrutsを使ったTomcatアプリ
作成方法について説明する。
ただし、Tomcatはクラスのキャッシュが残って思わぬ動作をすることがあるので、JBOSSを用いることを推奨する。
CPU500M以下、メモリ256M以下などの非常にきびしい環境でないかぎりJBOSSでも開発が進められると思うからである。
Lombozプラグインで、JSPなどの文法チェックや、Webサーバーへのデプロイ(配置、インストール)ができる。
C:\java\jakarta-tomcat-5.0.28以下にbinがあるようにインストールしてあるとする。
インストールはここをが参考になる。
備考)
デフォルトのポート番号は8080だが、Oracleサーバーを入れるとぶつかる。
Oracleサーバーを自分のマシンに入れる人は、C:\java\jakarta-tomcat-5.0.28\conf\server.xml で、
Connector port="8080"
を、
Connector port="8081"
として、http://localhost:8081 とアクセスした方が安全である。
デフォルトのままではTomcatを起動できないので。インストールしたままの
C:\eclipse2.1.2\eclipse-SDK-2.1.2-win32\eclipse\plugins\com.objectlearn.jdt.j2ee\eclitomcat50x.servers
のstartVMParametersとstopVMParametersの-Djava.endorsed.dirs の中から${serverRootDirectory}/bin;を削除する。
eclipseを起動(再起動)。
ウインドウ>設定>Lomboz
JDK Tool jarで、C:\jdk1.5.0_03\lib\tools.jar など、JDKのtools.jarを指定。
下の図では1.4.0_02になっているが、自分のPCのJDKを指定する。
ServerDefinitionで以下のように設定してOKを押す。C:/jakarta-tomcat-5.0.28など自分のPCのTomcatのパスを2回指定することになる。
ここでTomcat5.0.xを設定しても、デフォルトはJboss2.4.4のままである。プロジェクトごとにサーバーを選べるので
これで良い。
OK を押す。
http://www.apache.org/dist/jakarta/struts/binaries/
からjakarta-struts-1.1.zipを落として、適当なフォルダに展開しておく。ここでは、C:\java\jakarta-struts-1.1フォルダとした。
ウインドウ>設定>EasyStruts Struts1.1 で以下のように、
Add JARS で、C:\java\jakarta-struts-1.1\lib の全てのjarを一つずつ追加する。
Add TLDS で、C:\java\jakarta-struts-1.1\lib の全てのtldを一つずつ追加する。
以下のようになる。
OK
ファイル>新規>プロジェクト
次へ
プロジェクト名をtomcatにして、次へ
フォルダーの追加
srcを入れてOK
はい
次へ
Add…
tomcatWebと入力してOKを押す。
Targeted Serversタブを押す。
Apache Tomcat5.0.xを選択して、Add を押し、終了を押す。
tomcatプロジェクトを右クリック>設定>EasyStruts を選択。
Add Struts support to Project をクリック。
Webapp folder を、プロジェクトのWebモジュールと同じ tomcatWeb と入力して、「終了」。
Base package for generation は、開発のパッケージが決まっていればそれを指定する。今回はこのまま。
「OK]
eclipseのパッケージエクスプローラのtomcatプロジェクトのtomcatWebを右クリックし、
Lomboz J2EE > Deploy Module を選択。
コンソールにメッセージが表示される。
eclipseのパッケージエクスプローラのtomcatプロジェクトのtomcatWebを右クリックし、
Lomboz J2EE > Run Server を選択。
コンソールにメッセージが表示される。
http://localhost:8081/tomcatWeb/
struts-config.xml を選択すると以下のように見える。
Action,ActionFormとActionForwardの追加で開発を進めることになる。
実現するデータソースの設定をする。
LAN環境にOracleとPostgresのサーバーが動いている前提。
F:\開発ツールに、oracle9i, postgres8があるので、どこにも無ければインストールする。
Webではこちらから
http://otn.oracle.co.jp/software/products/oracle9i/index.html
http://www.postgresql.org/ftp/binary/v8.0/win32/
ここではPostgres8がlocalhostで動いていて、DB名はtemplate1、ユーザ名postgres、パスワードpasswordとする。
Oracleについては、localhost、DB名orcl,ユーザscott,パスワードpasswordとする。
OracleとPostgresのJDBCドライバーを取得する。F:\開発tool\libにも置いてある。
Oracle9,10であればclasses12.jar(Oracle9iの場合 C:\oracle\ora92\jdbc\lib 、
Oracle10の場合 C:\oracle\product\10.1.0\Db_1\jdbc\lib などにある)
をsample/sampleWeb/WEB-INF/lib にコピーする。
Postgres8であればpostgresql-8.0.309.jdbc3.jar (C:\PostgreSQL8.0\jdbcなどにある)
をsample/sampleWeb/WEB-INF/lib にコピーする。
tomcatWebを右クリックし、Lomboz J2EEで Add WEB-INF/lib jars to classpath を選択する。
またTomcatサーバーでの実行のために、上の2つのjarを、
C:\java\jakarta-tomcat-5.0.28\common\lib
にコピーする。
C:\java\jakarta-tomcat-5.0.28\conf\Catalina\localhost に以下のような内容のtomcatWeb.xml を作成する。
http://www5.plala.or.jp/shirokaze/java/tomcatWeb.xml
tomcatWebを右クリックし、新規>その他
Lomboz JSP Wizard を選んで、次へ
jndi.jsp と入力し「終了」を押する。
jndi.jsp を以下の内容にする。
http://www5.plala.or.jp/shirokaze/java/jndi.tom.txt
tomcatプロジェクトをデプロイして、サーバーを再起動(StopしてRun)してブラウザで見ると以下のように出る。
jndi.jspが無いといわれたら、Tomcatのデプロイフォルダのキャッシュが残って
新しいモジュールがインストールできていない
ことがある。
この場合、C:\java\jakarta-tomcat-5.0.28\webapps\tomcatWeb フォルダを手動で消去してデプロイ、サーバー起動
とやってみるとうまくいく。
データソースが取得できれば、Jakarta-dbUtilsが使うこともできるし、自分でJDBCを駆使してDBアクセスもできる。
またTomcatなどのコンテナがない環境で、DBアクセスするプログラムの開発をするために、
コンテナが無いとプロパティファイルから接続情報を取得してJNDIを経由しないでデータソースを
作成するクラスも作成済みで 、
OracleDataSourceManager
PostgresDataSourcemanager
という名前です。以下のソースにあるように、catalina_baseシステムプロパティからコンテナを判別する。
/* コンテナの判別 */ static { String catalina_base = System.getProperty("catalina.base"); if(catalina_base != null && !catalina_base.equals("")) { String base = catalina_base.toLowerCase(); if(base.indexOf("tomcat") != -1) { container_flag = 1; } else if(base.indexOf("jboss") != -1) { container_flag = 2; } } }http://ueno.cool.ne.jp/shirokaze185/java/sample.jar からダウンロードできる。
public ActionErrors validate( ActionMapping mapping, HttpServletRequest request) { // Perform validator framework validations ActionErrors errors = super.validate(mapping, request); return errors; }と何もチェックしないように修整する。
public ActionForward execute( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { SqlForm sqlForm = (SqlForm) form; String sql = sqlForm.getSql(); if(sql == null || sql.equals("")) { sql = "select * from pg_tables"; } DataSource ds = PostgresDataSourceManager.getDataSource(); QueryRunner qr = new QueryRunner(ds); ResultSetHandler rsh = new MapListHandler(); List list = (List)qr.query(sql, rsh); request.setAttribute("result", list); return mapping.findForward("success"); }requestにlistをセットして、次のページsqlresult.jspでゲットして使うようにしている。
http://www.atmarkit.co.jp/fjava/rensai2/eclipse03/eclipse03.html
http://nemuneko.com/jboss/eclipse.html
http://www.system-act.com/eclipse/lomboz.html
http://www.eclipsewiki.net/eclipse/?Struts%A5%D7%A5%E9%A5%B0%A5%A4%A5%F3
http://www-6.ibm.com/jp/developerworks/opensource/040723/j_os-ecstruts.html
著者:城風敏彦
Java道場に戻る。