Archive for Google Mania


GWT 2.0のDevelopment Modeにおいて、JNDI経由でMySQLを使う方法

add to hatena hatena.comment (0) add to del.icio.us (0) add to livedoor.clip (0) add to Yahoo!Bookmark (0) Total: 0

gwt-logo

 GWT1.6をお使いの方はこちらをご覧ください。

 Google Web Toolkit(以下GWT)で開発をするときに、Google Plugin for Eclipseを利用するとEclipse上からGWTのコードを実行でき非常に便利です。

 GWT2.0から新しく導入されたDevelopment Modeは、Javaで記述されたGWTのコード(正確にはJavaのbytocode)をブラウザのプラグインで直接実行させるという非常にクレイジーな方法を採用しており、このおかげでJavaのコードをJavaScriptにコンパイルせずにブラウザ上で直接実行できるようになりました。

 以下、GWT 2.0で、JNDI経由でMySQLを使う方法。ちなみに、設定ファイルをちょっと変更するだけで、PostgreSQLなど他のDBでも利用できます。

 まず、Eclipse上でGWTのプロジェクトを作成します。「Use Google Web Toolkit」にチェックが入っており、「Use Google App Engine」にチェックが入っていないことを確認して下さい。

 Google Plugin for Eclipseを導入してない方はこちらの私の記事でご確認ください

ws000000

 次に、war/WEB-INF/libにjetty-naming-6.1.11.jarjetty-plus-6.1.11.jar、さらにmysql-connector-java-5.1.12-bin.jar(これは使いたいDB用のJDBC)の3ファイルをコピーします。

 *jetty-namingやjetty-plus、mysql-connector-javaのバージョンに理由がある訳ではないので、少しぐらいバージョンが違っても動くと思います。

 war/WEB-INFの直下にjetty-web.xmlというファイルを作成して、以下のように記述します。DBのホスト名、ポート番号、ユーザ名、パスワードは適宜設定してください。

CODE:
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" "http://jetty.mortbay.org/configure.dtd">
  3.  
  4. <configure class="org.mortbay.jetty.webapp.WebAppContext">
  5.  
  6.     <new id="logstore" class="org.mortbay.jetty.plus.naming.Resource">
  7.         <arg>java:comp/env/jdbc/mysqldb</arg>
  8.         <arg>
  9.             <new class="com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource">
  10.                 <set name="Url">jdbc:mysql://192.168.0.111:3306/DB名</set>
  11.                 <set name="User">DBのユーザ名</set>
  12.                 <set name="Password">DBのパスワード</set>
  13.             </new>
  14.         </arg>
  15.     </new>
  16.  
  17. </configure>

 GWTのサーバー側のRemoteServiceServletを拡張したServletクラス内に以下の記述を追加すると、このクラス内からds.getConnection()でSQLのJDBCコネクションが取得できます。

CODE:
  1. private static final String LOOKUP_DB = "java:comp/env/jdbc/mysqldb"; //$NON-NLS-1$
  2.  
  3.     private static DataSource ds = null;
  4.  
  5.     @Override
  6.     public void init() throws ServletException {
  7.         super.init();
  8.         try {
  9.             Context ctx = new InitialContext();
  10.             ds = (DataSource) ctx.lookup(LOOKUP_DB);
  11.         } catch (NamingException e) {
  12.             e.printStackTrace();
  13.         }
  14.     }

 良くわからない人は、Google Web Toolkit 勉強会 in 京都 (#gwt_kyoto)に来るといいよ!

  • Digg
  • del.icio.us
  • Facebook
  • Google
  • hatena
  • LinkedIn
  • Technorati
  • Tumblr
  • TwitThis

3/11にGoogle DevFestが開催されました

add to hatena hatena.comment (0) add to del.icio.us (0) add to livedoor.clip (0) add to Yahoo!Bookmark (0) Total: 0

customlogo1

もうかなり、時間がたってしまいましたが、バタバタしていて記事を書くまで時間がかかってしまいました。

今回のGoogle DevFest 2010 Japanでは、通信システムを提供した株式会社SOBAプロジェクトの担当者としての立場と、京都会場を運営する京都GTUGのマネージャーとしての立場から、Googleやその他関係者との調整にドタバタする事になりましたが、無事にイベントを終える事ができました。

Google DevFestは、Googleの技術コミュニティが主体となって開催するイベントで、東京会場もかなり手作り感満載だったと聞いています。京都会場では、京都GTUGを中心とした10名を超えるボランティアスタッフによって、企画から運営まですべてを取り仕切りました。ボランティアスタッフとしてお手伝い頂いたみなさま、会場を提供していただいた京都リサーチパークのみなさまには、感謝の気持ちで一杯です。

また、京都会場でも90名近い方に参加して頂き、遠方は広島や岡山、また今年の初めにHackathonを開催させて頂いた福井からも多数の方に、お越しいただき本当に驚いたと同時に、関西でサテライトをやれて良かったと思いました。

今、思い出すとGoogleの技術者向けイベントを京都でサテライトしたいという話は、去年の夏頃にGoogleの石原さんとお酒を飲みながら雑談レベルで話したのが最初で、あれから半年かかりましたが、みごとに実現しました。きっと、Google社内での調整も大変だった事だと思います。

京都GTUGは、2009年6月に設立を申請し、日本では東京に次いで2番目のGTUGとして、6月末から活動を開始しました。それから約9ヶ月が経過しましたが、現在では約200名のメンバーを抱え、全世界のGTUGの中でも、もっとも活発に活動を行っているGTUGになっております。(イベントの申請が追いついていないので、2位の位置にいますが、すべて申請するとトップになるハズです)

これだけ、活発に京都GTUGが活動を続けてこれたのも、多くのボランティアスタッフをはじめとして、京都リサーチパーク、Googleの多大なご支援があってこそだと考えております。

Google DevFestでは、課題点がいくつかありましたが、コミュニティが主体的に運営するイベントとしては、なんとか及第点だったのでは無いかと考えておりますが、みなさまのご評価は如何でしょうか?

改めまして、Google DevFestにご参加いただいたみなさま、ご支援いただいたみなさまにお礼を申し上げたいと思います。

  • Digg
  • del.icio.us
  • Facebook
  • Google
  • hatena
  • LinkedIn
  • Technorati
  • Tumblr
  • TwitThis

Google App Engine コードラボを開催しました!

add to hatena hatena.comment (0) add to del.icio.us (0) add to livedoor.clip (0) add to Yahoo!Bookmark (0) Total: 0

appengine_lowres

土曜日にGoogleのオフィスを借りて、Google App Engine の Code Labを開催しました。

3回目という事にも関わらず、40名近い方に参加して頂きました。毎回、驚くのはその出席率の高さ!前回も欠席が1名、今回も欠席が3名と主催側としては非常にありがたい状態です。欠席率が低いと、余分に募集をしたりする手間が省けるので、今回の参加者のみなさまもぜひ周りの方に面白さを伝えて頂ければと思います。

会場でも簡単にお話しましたが、イベントで使用したドキュメントは多数のGooglerやGoogle API Expertに確認をしてもらいつつ私が年末からコツコツと書いてきたものです。多少の改善点も発見されましたので、それらの点はまた修正しておきたいと思います。参加者の方には、多くのAPIを学習してもらえたのでは無いでしょうか?

このドキュメントは、多少のブラッシュアップの後に一般公開したいと考えておりますので、ご期待下さい。
一応、今回の参加者は、データストア(Bigtable)への書き込み・読み出し・編集・メールの送信・Google Accountsによる認証・キャッシュ・URL Fetchといった機能が使えるようになっているハズです。
おそらく、ウェブサービスを作成するのに、必要な事のほとんどを学習できたのでは無いでしょうか?もちろん、データストアに対する複雑なクエリーの発行の仕方や、細かいキャッシュの制御などは引き続き学習して頂きたいと思います。

まだ、参加されていない方向けに書いておくと、このCode Labは実際にそのテクノロジーに詳しい人がハンズオンで指導してくれるので、初心者がハマりやすいポイントを教えてもらえます。ハッキリ言うと、Code Labに参加するだけで他の人が何時間もハマり続けるポイントを一瞬で回避・把握できます。

イベントは丸一日かかりますが、その丸一日でお釣りが来るぐらいの時間の節約する事ができます。

第2段をゼヒという話がありますが、またあの辛いドキュメント作成作業をヤルのかと考えると萎えてきます(笑) とりあえず、Google Wave本の執筆もあるので、できたとしても第2段は夏の終り頃~秋ぐらいでしょうかね。

データストアのLow Level APIの勉強会とかやりたいなぁ。

  • Digg
  • del.icio.us
  • Facebook
  • Google
  • hatena
  • LinkedIn
  • Technorati
  • Tumblr
  • TwitThis