JDK1.4での環境で各種サービス連携するWicketの画面サンプルを作ってみたw

ぼちぼちコーディングして勉強せな、あかんねということで
GAEで遊んでおりましたが、ちょうどお仕事?でWicketのサンプル作成を
ご依頼頂きましたので、その際の履歴としてまとめてみます。
ということで、久しぶりにEclipseと戯れております。BlackyManです。

  • 本番環境はJDK1.4

この情報が入るまで、新しい物好きな私は、最新のバージョンで遊ぶこと
ばかり考えておりましたが、本番環境が1.4だと聞いていやぁな予感がし
本家で確認したところWicket1.3.6なら、なんとか動きそうということになり
Wicket1.3.6での開発を進めることになりました。

  • QuickStartだよね

いざ、書こうと思ったら、、、おぃおぃまともにゼロから作ったことないじゃんorz
ということで、本家のQuickStartからmavenを利用してプロジェクト作成し
なんとかHellowWorld!が表示されました。
古いバージョンでダメかと思ってましたが、
ちゃんとmavenでとれることに感謝w

  • PostgreSQL8.4 + iBatis2.3.0.677

サンプルとはいえ、動的にしたいのよねってことで
PostgreSQL8.4をローカルに入れて、
てけとうなテーブルをCreateしました。
さすがにJDBCを生でいじりたくない気分だったので
これも初めてゼロからiBatisを設定してみました。
使うのは、問題ないのですが、やはりJDKが気になり
それぞれ確認したのは、いうまでもない。

  • Daoをさくっと作成

最終系では、PostgreSQLではなく、System-iを対象にする予定なので
DaoもわざわざInteraseを用意し、必要なCRUDを持つDaoを1つ作成しました。
参考:http://wiki.livedoor.jp/sinsengumi_2/d/iBATIS%C6%FE%CC%E7

  • マスタメンテをさくっと作成

技術評論社のサイトで連載されている世界の矢野勉ことやんやんの
Twitterアプリを参考に一覧⇔詳細画面(登録・更新・削除)を
作成しました。
参考:Wicketで始めるオブジェクト指向ウェブ開発:特集|gihyo.jp … 技術評論社

GoogleMapAPIって、日々進化しているらしく(それくらい知っとけ!って
突っ込みはなしで^^;)指定された住所からGoogleMapの検索が可能なのだとか
今回は、それに対してPostgreSQLで管理されている住所を引き渡して
画面表示時に連携するようにJavaScriptを少々いじってサンプル作成しました。
参考:http://googlemaps.googlermania.com/

Webservicex.netさんにて提供されるWebサービスSOAPアクセスさせるべく
Axisを導入し、Clientアクセスさせました。返ってくる値が、
XML形式のStringだったので、XMLパーサーも導入せにゃとなり
commons-digester-1.8を利用してModelへ変換させました。
ちなみにWebservicex.netには、symbolとして会社の略称?なのかな
それを渡すと株価を返してくれます。
ex)GOOL:GoogleIBMIBM、ORCL:Oracle etc
参考:Apache Tomcat Version 6.0.x から WebSphere Application Server Community Edition V2.1 にマイグレートする
   http://www.techscore.com/tech/ApacheJakarta/Digester/1.html

  • 郵便番号住所検索RESTサービスとのHTTPClientでの連携

http://zip.cgis.biz/で提供されている郵便番号から住所を返すRESTサービスに
JavaからCommonsHTTPClientを利用してアクセスするように作成した。
こちらの返り血もXML形式だった為、Digesterを利用してModelに変換させました。
参考:fireproject.jp - このウェブサイトは販売用です! -  リソースおよび情報


といった感じで、Wicketをベースにして各サービスへの連携サンプルなど
作ってみました。


以下の画面は、作成したサンプルの画面イメージになります。
郵便番号情報、地図情報は、私の出身大学の住所と郵便番号をキーにして
それぞれ住所検索RESTサービスとGoogleMapAPIに連携しています。
株価については、対象がアメリカの企業っぽいので、とりあえずGoogleの株価を出しております。