けんとのブログ

ぼやき&開発メモ

Linuxにサーバー構築

2009年01月28日 15時16分26秒 | Linux
まずWinSCPをWindowsにインストールする。

必要なインストールデータを全てWindowsの任意のフォルダにダウンロードする。
※Windous用と間違わないようにする。Linux用!

WinSCPを起動させ、インストールデータをLinuxのrootフォルダにコピーする。

java,tomcatのインストール。
環境設定はHP「JavaでHello World」を参照。分かりやすい。

MySQLのインストールは「データベースサーバー構築(MySQL) - Fedoraで自宅サーバー構築」
「http://fedorasrv.com/mysql.shtml」を参照。分かりやすい。

それぞれ動作確認しながら確実にインストールを完了させる。

インストールしたtomcatのwebappsフォルダ内にwindowsで作成したアプリケーションフォルダをコピーする。

URLに「http://linuxサーバーのアドレス:8080/コピーしたフォルダ名/表紙のjspファイル名」を指定すると、表示される。

だた、Linuxは文字コードSjisを知らないため、MySQLで文字化けが起こる。
DBから取り出した日本語のデータが文字化けする。

そこで、MySQLの文字コードをUTF8に設定する。
「MySQL 文字化けを防ぐ、文字コードの確認と設定 渋谷生活」
「http://www.avant-tokyo.com/linux/mysql_character_set.html」

ここの「文字コードを設定する」のところを引用させて頂いた。

[client]の項目は追加した。

MySQLを起動させ、
mysql>statusでステータスを確認し、全てのCHARACTER(文字コード)がUTF8になっていることを確認。

mysql>select * from テーブル名;でテーブル内容を表示させ、内容が文字化けしていないことを確認。

tomcatを再起動させ、確認。web上でも文字化けが直っていればOK!

Linuxについて

2009年01月28日 15時11分46秒 | Linux
Linuxにも様々なOSがある。
今回はCentOS5.0をインストール。
※インストール方法、Linux,CentOSの利点に関しては参考書を参照。

インストールはLinuxをインストールするPCのコマンド上で行い。
インストール後はWindousにUTF-8 Tera Term Proをインストールし、リモートでLinuxを操作する。

UTF-8 Tera Term Proを起動しログインすると、はじめに
[root@redhat src]# と出てくる。
この横にコマンドを入力することとなる。

ファイル管理コマンド
テキスト表示コマンド
に関しては実際に入力してみて、動きの確認をしながら操作に慣れるしかない。

エディタ(vi)の操作として、今までと最も違う点は、コマンドモードと、入力モードがある点。
入力モードでソースを書いたり、書き換えたりする。
コマンドモードではキーボードのキーに様々な意味があるので、うかつに触ると危ない。
vi {エンター}でviエディタが起動。
何かのファイルのソースをいじりたいときは、vi ファイル名 {エンター}でそのファイルのソースを開く。
その他、データを保存して終了、しないで終了、入力モード・コマンドモードの切り替え、コマンドモードでのカーソル移動など、
詳細は「Linuxコマンド」「http://cyberam.dip.jp/linux_command/command/com_main.html」参照。

早口言葉

2008年12月06日 21時09分27秒 | ぼやき
とうきょうとっきょときゃきょきゅ
とうきょうとっきょときゃきょきゅ
とうきょうとっきょときゃきょきゅ
とうきゅうとっきょときゃきょく
言えた!
言えてない・・・(笑)

仕事の効率化を図らねば。
頭の中であちゃこちゃに散乱してて、
まとめきれてなくて、
溜まってからまとめるから異常に時間かかって、
まとめ終えたら次のこと増えてて・・・
悪循環やぁ。

原因をしっかり改善しないといけないな。
溜まってから整理がダメだ。
ぶっちらかした部屋を片付けるようなもんや。
そりゃ時間かかるわ。
出したら直す。
新しい物買ったららすぐあるべき場所に置く。
ファイリングする。
細かいことも手帳にメモする。すぐにする。
よし!








Apache導入

2008年12月06日 20時30分24秒 | Apache
:apache導入(windows編):

apache2.2.10使用。
本家「http://httpd.apache.org/」からDL。
DLに関しての参考HP「http://www.adminweb.jp/apache/index.html」

ダウンロード後、いきなりインストールできないエラー。
内容
「Your system has not been modified, To complete installation at
another time,Please run setup agein.」

インターネットが繋がっている状態だとこうなること発見!
切断したらインストールできた。
ちなみに最初のエラーのみ通過したら、その後のインストール設定時に
インターネット接続しても問題なかった。

~概要~
TomcatもWebサーバ機能を持っていますが、
従来のWebサーバソフトと比較すると性能が良くなく検証作業など内部利用にとどめた方が良いと言われています。
本格的なWebサーバ機能が必要なシステムでは、Apache、IISなどの専用WebサーバソフトとTomcatを連携して使用します。
以下に、TomcatのWebサーバ機能を利用すべきでないと言われている理由を記載します。

・ TomcatのWebサーバ機能は歴史が浅く、Webサーバ専用ソフトと比較すると安定性が悪く、セキュリティも高くない。
・ TomcatのWebサーバ機能は一般に高速ではない。
・ Webサーバ専用ソフトを使用することにより静的コンテンツと動的コンテンツの処理を分散させることができる。

TomcatとWebサーバ(Apache、IISなど)の連携は以下のようにして行います。
(1). Webサーバエンジンは受け取ったリクエストが設定したURLパターンに合致する場合、そのリクエストを連携モジュールに渡します。
(2). 連携モジュールは連携プロトコルを使用し、そのリクエストを連携コネクタに渡します。
(3). 連携コネクタはリクエストをJSP/サーブレットコンテナに渡し、そこで処理が実行されます。

~Apacheの設定 ~
mod_proxy_ajpモジュールを有効化するため、
httpd.confに設定されているmod_proxy_ajpモジュールの設定を有効にします(コメントアウトの解除)。

・ モジュールはmod_proxy_ajpに加え、mod_proxyも設定を有効にする必要があります。
・ httpd.confは「$APACHE_HOME\conf」ディレクトリ配下にあります。$APACHE_HOMEはApacheのインストールディレクトリです。

httpd.conf

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so

※mod_proxyとmod_proxy_ajpのモジュールの設定を有効にします(コメントアウトの解除)。


連携するコンテンツの設定は、httpd.confの<Location>設定で行います。

httpd.conf

<Location /docs/>
ProxyPass ajp://localhost:8009/docs/
</Location>

※「http://ドメイン/docs」にアクセスしたら、「Tomcatのdocsディレクトリ」配下に転送されることを表します。
※8009は、Tomcat側の連携コネクタのポート番号です。


~Tomcatの設定~
$CATALINA_HOME\conf配下のserver.xmlの連携コネクタの設定部分が有効になっていること(コメントアウトの解除)、
ポート番号が8009になっていることを確認します。

・ $CATALINA_HOMEはTomcatのインストールディレクトリです。

server.xml


<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />


~動作確認~
Tomcat、Apacheを起動し、http://localhost/docs/ にアクセスします。
ロゴ(猫)の画面が出れば正常に動作しています。
Tomcatのポート番号8080ではなく、HTTPのポート番号である80で、Tomcatに接続していることが確認できます。


参考HP「http://www.javaroad.jp/opensource/js_tomcat3.htm」

コネクションプーリング(DataSource編)

2008年12月01日 22時36分01秒 | コネクションプーリング
データベースへの接続には時間がかかります。
そのため何度も同じデータベースに接続を繰り返すような場合には、接続をプールに保管しておくほうがよいことになります。
また、直接プログラム中に、接続手順を記述するよりは、次のようにするほうがよくなります。

1.データベースへの接続の手順など (Data Source) に「名前」を付ける。
2.そして、この「名前」から Data Source を獲得する。
3.さらに、この Data Source を経由して、データベースとの接続を確立する。

「名前」を処理するために JNDI 名前空間 (JNDI namespace) が使用されます。

注意
JNDI (Java Naming and Directory Interface) とは「名前」によって、データなどを探す機能のことです。
例えば以下に大雑把な説明があります。
・Java Naming and Directory Interface (JNDI) (sun のページ)
・Java Naming and Directory Interface (英語版の wikipedia)
データベースに限定すれば、データベースに「名前」を付けておいて、「名前」だけでデータベースの処理をする機能です。
この「名前空間」はフォルダと類似の形 (あるいは XML ファイルと類似の構造) をしており、
定義された「名前」は「java:comp/env」の下におかれる。
「名前」が例えば「jdbc/mypages」であれば、
名前空間における位置は「java:comp/env/jdbc/mypages」となる。プログラムの流れは次のようになります。


// 名前付けのコンテキスト (部分) を探す (lookup)
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");

// 名前から DataSource を獲得
DataSource ds = (DataSource) envCtx.lookup("jdbc/mypages");

// DataSource から接続を獲得
Connection conn=ds.getConnection();
........
// ここで色々な作業をする。
........
// 接続を閉じる
conn.close();

次のように一度に、DataSouce を探してもよい。

Context initCtx = new InitialContext();

DataSource ds = (DataSource) envCtx.lookup("java:comp/env/jdbc/mypages");

Connection conn=ds.getConnection();

.........

conn.close();

注意
Context, InitialContext はパッケージ javax.naming に属し、 DataSource はパッケージ javax.sql に属している。
Context はインターフェースで、InitialContext はその実装クラスである


server.xmlの記述

<Context docBase="mypages" path="/mypages" reloadable="true">
<Resource name="jdbc/mypages" auth="Container" username="root" password="root"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost/mydata?useUnicode=true&characterEncoding=sjis"
maxActive="8" maxIdle="8" />
</Context>

Resouce タグの属性は、

name データソースの名前 (JNDI 名)
auth プログラムでログインの手順を書くか、
コンテナー (Tomcat) がログインするかの指定 (通常は Container)
type データソースのタイプ、クラスもしくはインターフェースの正式名称
driverClassName 使用する JDBC ドライバの正式名称
maxActive コネクション・プールの最大数
maxIdle コネクション・プールでアイドルであるものの最大数
maxWait 利用可能な接続がないときに接続が返されるまで待つ最大時間 (ミリ秒)
password データベースのパスワード
url JDBCドライバーに手渡される接続 URL
username データベースのユーザ名
ValidationQuery 接続を確認するための SQL 文、SELECT 文で返す結果があるものでないといけない

注意
url に & が含まれる場合には & で置き換える必要がある。(XML と同じ制約)
無指定であれば maxActive, maxIdle は 8 で、maxWait は無限である。次を参照のこと。

Resource タグの name, type, auth 属性はそれぞれ、
web.xml の resource-ref 要素の子要素である res-ref-name, res-type, res-auth の中身に一致しないといけない。


web.xml の記述

<resource-ref>
<res-ref-name>jdbc/mypages</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>

以上

参考HP「http://mail2.nara-edu.ac.jp/~asait/java/tomcat/tomcat.htm」

これでeclipseでtomcatを再起動させると、
「javax.servlet.ServletException: Cannot load JDBC driver class 'com.mysql.jdbc.Driver'」
のエラーで怒られる。
「ビルド・パスの構成」で、JDBCドライバ「mysql-connector-java-5.1.7-bin.jar」をTomcatより先に読み込ませても同じエラー。


Tomcatにコネクションプーリング(データベースとの接続をずっと繋げっぱなしにしてくれる機能)を任せる場合は、
Tomcat5.5のドキュメントの該当部分に
http://tomcat.apache.org/tomcat-5.5-doc/jndi-resources-howto.html
引用:
--------------------------------------------------------------------------------
1. Install Your JDBC Driver

Use of the JDBC Data Sources JNDI Resource Factory requires that you make an appropriate JDBC driver available to both Tomcat internal classes and to your web application. This is most easily accomplished by installing the driver's JAR file(s) into the $CATALINA_HOME/common/lib directory, which makes the driver available both to the resource factory and to your application.

--------------------------------------------------------------------------------

とあるので、やはりTomcatインストールディレクトリの下の
/commn/lib にJDBCドライバを設置する必要があるみたいですよ。

NetBeans4.1用の解説
http://www.netbeans.org/kb/41/using-netbeans/dbconn_ja.html
引用:
--------------------------------------------------------------------------------

データベースドライバを IDE から使用できるようにしても、
Web アプリケーションからそのドライバを使用できるわけではないことに注意してください。
つまり、IDE を使用してデータベースにアクセスし、変更することはできますが、
Web アプリケーションからデータベースにアクセスして変更することは、まだできません。
これが行えるようにするには、データベースドライバの JAR ファイルを Web アプリケーションの
WEB-INF/lib フォルダ (Tomcat 接続プール機能の場合は、Tomcat の common/lib フォルダ) に追加する必要があります 。

--------------------------------------------------------------------------------

とのこと。
参考HP「http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=33165&forum=12&7」

また、server.xmlの記述はTomcatのバージョンによって違うみたいなので要注意。
下記の書き方は古いバージョンの書き方。
<ResourceParams name="jdbc/MySQL">
<parameter>
<name>username</name>
<value></value>
</parameter>
<parameter>
<name>password</name>
<value></value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>org.gjt.mm.mysql.Driver</value></parameter>
<parameter>
<name>url</name>
<value>jdbc:mysql:///hellodb?useUnicode=true&characterEncoding=SJIS</value>
</parameter>
</ResourceParams>

今回行った書き方が新しいバージョンの書き方。正確にどのバージョンからは調べてないです・・
ちなみに、5.5系のリファレンス引用すると、
「http://jakarta.apache.org/tomcat/tomcat-5.5-doc/jndi-datasource-examples-howto.html」

<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource" username="javauser" password="javadude" driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/javatest?autoReconnect=true"/>

となってます。


また、server.xmlの記述はTomcatのバージョンによって違うみたいなので要注意。
下記の書き方は古いバージョンの書き方。
<ResourceParams name="jdbc/MySQL">
<parameter>
<name>username</name>
<value></value>
</parameter>
<parameter>
<name>password</name>
<value></value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>org.gjt.mm.mysql.Driver</value></parameter>
<parameter>
<name>url</name>
<value>jdbc:mysql:///hellodb?useUnicode=true&characterEncoding=SJIS</value>
</parameter>
</ResourceParams>

今回行った書き方が新しいバージョンの書き方。正確にどのバージョンからは調べてないです・・
ちなみに、5.5系のリファレンス引用すると、
「http://jakarta.apache.org/tomcat/tomcat-5.5-doc/jndi-datasource-examples-howto.html」

<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource" username="javauser" password="javadude" driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/javatest?autoReconnect=true"/>

となってます。



Clayプラグイン導入

2008年11月30日 14時50分28秒 | Clay
[eclipse3.2に導入する場合]

本家HP「http://www.azzurri.jp/ja/clay/index.html」からDL
ClayCore1.4.2 使用。

ClayCoreを動作させるためには、ClayCore本体以外にもGEF(Graphical Editing Framework)というプラグインが必要です。

GEF
本家HP「http://www.eclipse.org/gef/downloads/」からDL
eclipseのバージョンと一致するものを使用する必要がある。
eclipse3.2.0を使用している場合、GEF-examples-3.2.0をDL

それぞれ解凍し「features」「plugins」フォルダの中身を
eclipseの「features」「plugins」フォルダ内にコピペでOK

参考HP「http://www.stackasterisk.jp/tech/java/eclipse02_01.jsp」

[eclipse3.4に導入する場合]

・GEF のインストール
Clay Database Modelingをインストールする前に、利用している Eclipse のバージョンに対応した Graphical Editor Framework (GEF) がインストールされている必要があります。
GEF がインストールされていない場合、Clay をインストールすることはできません。
GEF は Eclipse Tools Project から提供されています。
すでに GEF がインストールされている場合は再度 GEF をインストールする必要はありません。

GEF のインストールは Eclipse の更新マネージャー(Update Manager)を利用します。

Eclipse を起動し、「ヘルプ」メニューから「ソフトウェア更新」→「使用可能なソフトウェア」を選択します
「Ganymede」の+をクリックし一覧表示し、「Graphical Editing Framework」をチェックして「インストール」をクリックします
指示に従ってインストールを完了し、Eclipse を再起動します。

・Clay Database Modeling のインストール

更新マネージャを利用する
Clay Database Modelingのインストールは Eclipse の更新マネージャー(Update Manager)を利用します。

Eclipse を起動し、「ヘルプ」メニューから「ソフトウェア更新」→「使用可能なソフトウェア」を選択します
「サイトの追加」をクリックし、「ロケーション」に "http://www.azzurri.co.jp/eclipse/plugins" と入力し「OK」ボタンをクリックします
「サイトの管理」をクリックし追加した"http://www.azzurri.co.jp/eclipse/plugins" にチェックを入れ「OK」クリックすると、「使用可能なソフトウェア」に追加されるので、
チェックし、インストールをクリック。「Clay Database Modeling Core Edition」または「Clay Database Modeling Pro Edition」のいずれかを選択しインストールします
指示に従ってインストールを完了し、Eclipse を再起動します。

参考HP「http://www.azzurri.jp/ja/clay/installation.html」

※Coreは無料、Proは有料なのでCoreをインストール
※eclipse3.2で、3.4の方法からインストールしようとしたらプラグインが見つからなかった。
※eclipse3.4で、3.2の方法からインストールすると、プラグインを読み込まなかった。


CSEインストール

2008年11月30日 14時42分08秒 | CSE
本家「つみきWeb」「http://www.hi-ho.ne.jp/tsumiki/」からDL

mysqlに接続しようとすると、致命的なエラーを吐いて強制終了。困った・・・

調べてみると、cseはmysql3以下にしか対応していないんだそうです。なるほど。どうりで接続できないわけだ。

さらに調べてみると、ODBCでmysqlに接続すれば問題なく使えるというページを発見。さっそく試してみます。

まずはmysqlのodbcコネクタをダウンロードし、インストール。

HP「http://dev.mysql.com/downloads/connector/odbc/3.51.html」

上記ページから、mysql-connector-odbc-3.51.26-win32.zipをダウンロードしてインストール。

続いてコントロールパネル>管理ツール>ODBCで接続情報を設定します。


 Windowsの管理ツール→データソース(ODBC)を起動します。
 ・ ODBC データソース アドミニストレータ が起動します。
 ・『追加』ボタンをクリックします。
 ・ データソースの新規作成 ウィンドウが開くので、
  『セットアップするデータソースのドライバを選択してください(s)』
   と書かれた下部の選択ボックスから、
  『MySQL ODBC 3.51 Driver』を選択し、『完了』ボタンを押す
 ・ Connector/ODBC 3.51.xx Add Data Source Name
  と書かれた英語のウィンドウが表示されます。
  このウィンドウは、
  ODBCドライバの、接続パラメータを設定する為のものなので、ウィンドウ内の
  各入力欄に、設定を行ないます。
  基本的に設定が必要なものは以下の項目。
  
 ・Data Souce Name
   ODBCのドライバの、設定を管理する為の名前付け。
   ここでつけた名前は、後々CSE側から選択する際の名称になるので、
   『わかりやすい名前で』
 ・Server
   接続するMySQLデータベースのサーバ名。
   自宅サーバなどを運用している場合は、大抵『localhost』でOKな筈です。
 ・User
   MySQLへ接続する為のユーザ名を入力
 ・Password
   MySQLへ接続する為の、ユーザ名に対するパスワードを入力
 ・Database
   空白でも良いが、空白にした場合、
   CSEからMySQL側のテーブル一覧を取得しようとした際にエラーになりました。
   use [データベース名]; を発行することで、SQLの操作が可能...
   取得はそれでも出来ない模様なので、ここで操作するデータベースを
   設定しておいたほうが無難です。
 ・Connect Options タブ配下の Character Set
   空白のまま(デフォルト)でもOKですが、
   SJISを指定しておいた方が良いと思います。
 ・設定完了後、Connector/ODBC 3.51.xx Add Data Source Nameの下部左側にある
  『Test』ボタンで、接続テストを行なって下さい。(これは必ずやっておくべし!)
   結果として、
  『Success; connection was made!(成功です;接続が確立されました!)』
   というメッセージが帰ってくればOKです。
 ・テスト結果に問題がなければ、『OK』ボタンを押し、
   Connector/ODBC 3.51.xx Add Data Source Nameウィンドウを終了します。
 ・『ODBC データ ソース アドミニストレータ』ウィンドウを終了します。
 ・CSEを起動します
 ・CSEのメニューから『データベース』→『接続』を選択します
 ・接続設定のサブウィンドウが表示されるので、ここで
  DBMS    : 『 ODBC汎用 』
  データソース: 『Connector/ODBC 3.51.xx Add Data Source Nameで設定した設定名(Data Souce Name)』
  なおユーザ名とパスワードは『無くても接続出来ます』
  なぜなら、データソースの設定に
  『ちゃんとIDとパスワードが入っているから』。

 接続までのステップは以上です。

参考HP「http://blog.goo.ne.jp/linour7/e/6fa70e5915fc56b71e418baa8d21158f」

※ODBCにMySQLの設定をする時「login」タブの方に、
任意のデータソース名、サーバ名、ユーザ名、パスワード、使用するデータベース名の選択をして「test」をクリックして
「success ・・」と出たあと、となりの「Connect Options」で文字コードの設定をしておかないと、
CSEでデータを開いたとき、日本語が文字化けしたりする。

Character Setの選択欄があればutf8を選択(環境に応じた文字コード)
選択欄がなければ、「Initial Statement」 にset names utf8

※ユーザ名、パスワードはMySQLインストール時に設定したパスワードが両方に入る。
今回は両方「root」となる。

Tomcatインストール

2008年11月30日 14時36分39秒 | Tomcat
本家「http://tomcat.apache.org/download-60.cgi」からDL
apache-tomcat-6.0.18 使用

参考HP「http://www.searchman.info/java_eclipse/1020.html」

パスワードは設定してない。
JAVAはJREではなくJDKを指定。
HPに「注意点 :インストールするディレクトリは、上記のように、
スペース、点、全角文字が入らないようにしましょう。後々困ります」
とあるが、スペースが入った状態でもとくに問題ない様なので、そのまま設定した。

最新版(6.0.18)特有のバグがあります。
※旧バージョン(6.0.16)までは、こんなことありませんでした。

C:Tomcat 6_0conf の中に、tomcat-users.xml というファイルがあります。

その先頭を以下のように変更してください。

xml version='1.0' encoding='cp932'

xml version='1.0' encoding='utf-8'

これをしないと、「java.io.UnsupportedEncodingException: cp932」エラーが出て、
tomcatが正常に起動しない。

[tomcatプラグイン]

「http://www.eclipsetotale.com/tomcatPlugin.html」からDL
tomcatPluginV321 を使用

展開してできたディレクトリ com.sysdeo.eclipse.tomcat を、3.4 以降は<eclipse_home>/dropins/ に、
3.3 以前は<eclipse_home>/plugins/ 配下にコピー
eclipse起動
設定→Tomcat→パージョン指定(今回は「バージョン6.x」)
→Tomcatoホーム指定(今回は「C:Program FilesApache Software FoundationTomcat 6.0」)
→コンテキスト宣言モードを「Server.xml」に指定→ + →JVM設定→JREをjdkに指定(今回は「jdk1.6.0_10」)

設定→Tomcat→JVM設定→Tomcatをデバッグモードで起動しないのチェックを外す。
※これをしないと、デバックができない!プレークポイントを付けてもなにもならない!!

Tomcat起動
コンソールにエラーなく「Server startup」が出ればok

URLで「http://localhost:8080/」に接続し、ロゴ(猫)がでればOK

参考HP「http://www.searchman.info/java_eclipse/1090.html」

eclipseでTomcatプロジェクトを作ったとき、ビルドパスに「work」フォルダも含まれているが、
後々、この中に作られるjsp.javaみたいなのがエラーを出したり邪魔をするので、ビルドパスから外しておく。
プロジェクト名を右クリック→プロパティー→Javaのビルド・パス→ソース→workフォルダ選択→除去


JDK5(JDK1.5)まで、Tomcatが動作していたのに、
JDK6(JDK1.6)をインストールして、パスも通したのに、
何故かTomcatが動作しない問題が報告されています。

msvcr71.dllをC:Program FilesJavajre1.6.0binから
C:WINDOWSsystem32にファイルをコピーし、
PCを再起動すると起動するようになります。

msvcr71.dllは、.NET Framework1.1をインストールしていれば
system32に入っているようなのですが、
これがインストールされていないPCもあるようです。

この処置を行うと、
JDK6(JDK1.6)でTomcatが動作するようになります。


MySQLインストール

2008年11月30日 14時31分58秒 | MySQL
日本語ページの本家「http://www-jp.mysql.com/」からダウンロード
※前はユーザ登録はなかったが、現在はユーザ登録しないとダウンロードさせてくれない。
※ユーザ登録の項目に「ZIP/Postal Code」というのがある。
これは国際的な郵便番号らしい。
日本は「81」、東京は「3」、大阪は「6」、名古屋は「52」、福岡は「92」らしい。
とりあえず「81」とだけ入力したらokだった。
参考HP「http://www.embassyworld.com/data/Zip_Codes.html」

mysql-5.0.67を使用

インストール設定
参考HP「http://www.aiosl-tec.co.jp/java-start/chap11.html」
デフォルト文字コードは「utf8」、passwordは「root」で設定。ユーザ名は自動で「root」になる。
※root権限のユーザが作成される。
※セキュリティ上、新しくユーザを作った方がいい。

MySQLをインストールすると、自動的にrootという特殊なユーザが作成されます。
rootは、UNIX系OSなどで管理ユーザのアカウント名として使われていますが、
MySQLのユーザアカウントはOSのユーザアカウントとは別のものです。
ただし、MySQLへのログイン時にユーザ名が指定されていないときは、
現在のログインしているユーザ名をMySQLのユーザー名としてログインを試みてくれます。

ログインパスワードを設定する場合
参考HP「http://www.rfs.jp/server/mysql/02/01.html」

JDBCドライバ
JAVAからMySQLに接続するにはJDBCドライバが必要。
参考HP「http://www.hellohiro.com/jdbcmysql.htm」
本家「http://dev.mysql.com/downloads/connector/」からDL。とくにインストールはない。
mysql-connector-java-5.1.7使用。
解凍したフォルダを任意のフォルダに置いておく。
eclipseでDBに接続する際、プロジェクトに任意のフォルダを作成(「jarとか」)し、
JDBCフォルダ内のmysql-connector-java-5.1.6-bin.jarをコピペし、ビルドパスに追加する。
これでOK。

インストール時文字コードは「utf8」で設定したが、
日本語をINSERTできない問題が発生した。
以前linuxにutf8でINSERTした際は日本語も問題なかったが、今回自宅windowsではどうしてもうまくいかない。
色々試したことを書いておく。

文字コードを調べるコマンド「status;」
もっと細かな表示は「show variables like '%char%';」

インストール段階で全てutf8になっていた。
でdbもテーブルもutf8の状態で作って、日本語をINSERTすると、
「ERROR 1366 (HY000): Incorrect string value: 'x83x89x830.....」
こんな感じのエラーがでる。
日本語のとこが文字化けして、おかしな値だよってな感じ。
「SET character_set_client = sjis;」コマンドで、入力文字コードをsjisにすると、
日本語もINSERTできる。
しかし、SELECT表示すると文字化けした状態で表示される。
「SET character_set_results = sjis;」コマンドで、結果文字コードをsjisにすると、
SELECT表示も正常に表示される。
しかし、CSEの文字コードをutf8に設定して表示してみると文字化け(表示されないだっけな・・)

あとDB全てutf8状態で、日本語をサクラエディタでutf8に変換し(文字化けした状態)てINSERTはできるが、
SELECT表示も文字化けする。
同じような感じで、サクラutf8状態で日本語INSERT文を書いて、DBにコピペしても、同じエラーとなる。
この文のファイルをCSEでファイル一括実行すると、出来るが、SELECT表示はやっぱり文字化けする。

こんな感じで断念・・・
windowsだとクライアント入力文字コードがutf8でも、日本語はsjisと判断され、INSERT時にsjis→utf8の変換が
行われ、INSERT文の日本語が化けしまうのかな・・・

参考「http://pugiemonn.blog6.fc2.com/?tag=1366」
「http://blog.goo.ne.jp/nokonoko2006/e/7aa4126c0693fe8840e68176dffb6849」
ここのHPではクライアント入力文字モードのみsjisとして日本語入力している。
取り出し時はcharacter_set_resultsの文字コードに変換されるとある。
SELECT表示が文字化け状態なのを気にしなければ、これで格納、utf8で取り出し、
ブラウザをutf8設定にすることで文字化けから正常に変換されて、ちゃんと表示されるかも
「http://www.takeash.net/wiki/?MySQL」←このHPには
「注意) MySQL 5.0.37 / ODBC Driver 3.51.12 / Windows の構成では文字化けする。」とある。
「http://okilab.jp/blog/2008/04/mysqlutf8.html」ここのも良さそうだが良く分からず出来なかった。
「http://wota.jp/ac/?date=20061011」ここも文字コード設定について分かりやすい。

あとmy.cnf(my.ini)ファイルでの文字モコード設定はいろいろ書いてあるが、まとめておく。
MySQL5系ではmy.iniしかない。これを編集する。

[client]
port=3306
default-character-set = sjis

[mysql]
default-character-set = sjis

[mysqld]
default-character-set = sjis
skip-character-set-client-handshake

上記は全部sjis状態。全部utf8にすると、character_set_system以外utf8になる。

[文字コード設定の意味]
character_set_client †
クライアントの使用する文字セットです。サーバへのSQL文はこの文字セットで送信します。

character_set_connection †
サーバーはクライアントからのSQL文をcharacter_set_clientからcharacter_set_connectionに変換します。

character_set_database †
デフォルトデータベースの文字セットです。USE文などでデフォルトデータベースを変更するとこの変数の値も変わります。
データベースの文字セットについては以下を参照して下さい。

character_set_results †
サーバからクライアントに返される検索結果などに使用される文字セットです。

character_set_server †
サーバの文字セットです。上のcharacter_set_databaseで説明したように、
この文字セットは、データベース作成時の暗黙の文字セットとして使用されます。
この変数はサーバ起動時のオプションとして初期設定できます。
本編では、サーバオプションファイル(my.ini)の[mysqld]セクションで、

default-character-set=utf8

として設定しています。

character_set_system †
システムの使用する文字セットで常にutf8が使用されています

ということで、character_set_systemは常にutf8らしい、「SET character_set_system = sjis;」はエラーになるし、
「set names sjis;」でもcharacter_set_systemはutf8のまま。このままでいっか。
[mysqld]はちょい下になるし、[mysqld]とdefault-character-set = sjisの間には
コメントアウトの文字が数行あるから見落とさないように。

今回自宅開発ではとりあえず全てsjisでいく。

MySQLコマンドプロンプトで直接日本語を入力するときは「Alt+半角/全角」でできる。

MySQLはPC起動時にバックグラウンドで起動している為、設定ファイルを変更したときは、
PCを再起動させるか、コンパネ→管理ツール→サービス→MySQLで停止→開始をしないと設定が反映されないので注意する。

eclipseインストール

2008年11月30日 14時21分46秒 | eclipse
本家HP「http://www.eclipse.org/downloads/」からダウンロード、インストール
Cubbyフレームワークを使う際に、WTPが必要になるので、始めから入っている
「Eclipse IDE for Java EE Developers (163 MB) windows」を使用。

~日本語化~
日本語バッチもeclipseのバージョンやタイプによって違うので気をつける。
HP「http://sourceforge.jp/projects/nttdatagroup-oss-square/wiki/blanco_Framework%2Fnlpack.eclipse.ganymede」
「Eclipse IDE for Java EE Developers 」用の日本語化パッチをダウンロード。
解凍し、「features」フォルダと「plugins」の中身をeclipseの同フォルダ内にコピペ。
これでok
※解凍したeclipseフォルダごと元eclipseフォルダと同じ場所に持っていき全て「上書き保存」でもいい。
上記と同じことが行われる。

※デフォルトで、JAVA JREを使用する設定になっているので、JDKを使用するように変更しておく。
eclipse3.4の場合
設定→インストール済の JER→検索→javaフォルダ指定→okクリック
→インストール済のJREにjdkが追加されるので、jreのチェックを外し、jdkにチェックする。
参考HP「http://www.searchman.info/java_eclipse/1070.html」

eclipseの文字コードを予め設定しておく。
設定→一般→ワークスペース→テキスト・ファイル・エンコード

webアプリを作ったり、DBが絡んだプロジェクトを作成するときは特に注意しておく。
DBで文字化け、ブラウザで文字化けの原因となる。

~インポート文の折りたたみ設定~
※好みに応じて設定。どのクラスをインポートしているのか明確ししておきたいときは下記設定をする。
設定→Java→エディター→折りたたみ→「これらの要素を最初は折りたたみ」の「インポート」のチェックを外す。

~libファイルやclassesファイルの隠れファイルをeclipseで見る方法~
プロジェクト名右クリック→表示→ナビゲーター

~警告~
「Listはraw型です。総称型Listへの参照は、パラメーター化する必要があります」が出る。
ウィンドウ→設定→Java→コンパイラー→エラー/警告→総称型→raw型の使用
を「無視」に設定するとでなくなくが、きちんとジェネリックを使ったソースを書いて、警告を消す方がいい。

~プラグインが反映されない、挙動がおかしい~
Eclipseの動作がおかしくなったときには eclipse -clean コマンドが有効。
Windows だとコマンドプロンプトで、eclipse.exeのあるフォルダに移動して、
「eclipse.exe -clean」 を実行。
特にプラグインを出し入れしたり、プラグインを開発している人は必ずといっていいほど利用することになるであろうコマンドです。