GoogleのDateSourceServletのチュートリアル
はじめに
GoogleのDateSourceServletとGoogleChartToolsを使って、DBに入っているデータを可視化したい。今回はその全段階として、GoogleDateSourceServletのチュートリアルにトライしてみる。
Tomcatのインストールに関しては以前のエントリーを参照
以下のチュートリアル(英文)に従って作業する
https://developers.google.com/chart/interactive/docs/dev/dsl_get_started?hl=ja
JavaのMySQLコネクター導入
まずはJavaのMySQL用ライブラリーの導入から作業する。以下にGoogleのインストレーションが書いている(英文)
https://developers.google.com/chart/interactive/docs/dev/dsl_install
ここにJavaようのMySQLコネクターが置いてある。
JDBC Driver for MySQL (Connector/J)
http://www.mysql.com/products/connector/
ダウンロードするにはユーザー登録が必要。展開したら、中に入っているmysql-connector-java-5.1.18-bin.jarをして/usr/share/tomcat6/libに入れておく。
DateSourceServletのインストール
http://code.google.com/p/google-visualization-java/からソースをダウンロードできる。
私がダウンロードしたときはversion1.1.1だった。
さてインストール作業である。
といっても圧縮ファイルを展開してTomcatのホームディレクトリに入れていくだけ。
<Tomcat_Home>にmyWebAppという名前のディレクトリをつくる。
ディレクトリ名は重要で、うっかり他の名前をつけるとServletプログラムが正常に動かない。
このmyWebAppに先程ダウンロードしたファイルを入れていく。
Googleのチュートリアルでは長々と説明しているが、端的に言うと以下の様なディレクトリ構造を作り展開したvisualization-datasource-1.1.1のファイルを入れていく。
lib内にはcommons-lang-2.4.jarやcommons-logging-1.1.1.jarなど他3つの依存物を入れておく。
ここでチュートリアルには指示されていないが、いずれServletプログラムを書くときに使うのでclaseesディレクトリにAdvancedExampleServlet.javaやAdvancedExampleServlet2.java他4ファイルを入れておく。
Googleのチュートリアルではvisualization-datasource-1.0.2.jarとvisualization-datasource-examples.jar で動作するようだが、私の環境では上手く動かなかったので、ソースからコンパイルした。
シェルに向かって
$ cd /usr/share/tomcat6/myWebApp/WEB-INF/clasees $ export TOMCAT_HOME=/usr/share/tomcat5 $ export JAVA_HOME=/usr/lib/jvm/java $ export CATALINA_HOME=/usr/share/tomcat5 $ export JPATH=/home/yasu/www/WEB-INF/lib/ $ export CLASSPATH=. :/var/lib/tomcat6/webapps/myWebApp/WEB-INF/lib/visualization-datasource-1.1.1.jar :/var/lib/tomcat6/webapps/myWebApp/WEB-INF/lib/commons-lang-2.4.jar :/var/lib/tomcat6/webapps/myWebApp/WEB-INF/lib/commons-logging-1.1.1.jar :/var/lib/tomcat6/webapps/myWebApp/WEB-INF/lib/guava-r07.jar :/var/lib/tomcat6/webapps/myWebApp/WEB-INF/lib/icu4j-4_0_1.jar :/var/lib/tomcat6/webapps/myWebApp/WEB-INF/lib/opencsv-1.8.jar :/usr/share/tomcat6/lib/tomcat6-servlet-2.5-api-6.0.35.jar $ javac SimpleExampleServlet.java
などして、パスを通した後コンパイルしてやる。
動作確認
Webブラウザをたちあげてhttp://localhost:8080/myWebApp/simpleexampleにアクセスする。すると以下のように返答がある。getting_started.html
さらにhttp://localhost:8080/myWebApp/getting_started.htmlにアクセスしてみる。
しかし、上手く表示されない。The requested resource (myWebApp/getting_started.html) is not available.等と言われて、そんなファイルはないと怒られる。
原因はファイルのパーミッション。ls -lhなどとすると rw-rw----となっていて、その他ユザーにはReadできない状態になっている。chmod 664 getting_started.html などしてその他ユーザーでもRead可能としてやる。再びアクセスしてみると
表示される。
Using an External Data Store
さてCsvDataSourceServletに移る。チュートリアルは以下(英文)
https://developers.google.com/chart/interactive/docs/dev/dsl_csv?hl=ja#running
チュートリアルに従って作業するがうまくいかない。
csvからデータをもらってきて表示させるのだが、円グラフのところが出ない。Servletを利用してデータを取り出すのは上手く行かないようだ色々試してみてもだめ、結局解決策はall_examples.htmlを別のエディタで開いて、それをコピペしたら動いた。もしかしたら文字コードがおかしくなっている?