ログ日記

作業ログと日記とメモ

2010-01-01から1年間の記事一覧

SeasarでWicketを使う

GWTを使いつつ、たまに静的ページも出したい。 ということでWicketを使ってみることにした。 まずWicketの設定。 wicket-*.jar をビルドパス、WEB-INF/lib に追加。http://wicket.apache.org/learn/examples/helloworld.htmlここの通りにサンプルを作成。 次…

Postfixのメールをキューから取り出す

ぐぐるとキューを全削除って記事がよく引っかかるけど、全削除することなんてまずないよね。 postqueue -p |grep "^[A-F0-9]"| awk '{print "postcat -q " $1 " > " $7 "\ " $1 ".txt" }' > cmd.txt sh cmd.txtやるなら保存してから。

GWTのRequestFactoryを使う

サーバーサイドのEntityをクライアントで使えるように出来るらしいのでやってみる。 S2JDBCのEntityを利用した。 http://code.google.com/intl/ja/webtoolkit/doc/latest/DevGuideRequestFactory.html ここの通りにファイルを作っていく。 テーブルはidとtex…

S2JDBCで再帰とかツリー構造とか

理想通り動きすぎて凄い! s2jdbc-genを使って生成したEntityは特に変更する必要もなく、サービスに再帰SQLのコードを書くだけだった。 public class Category implements Serializable { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(…

いろんなPHP Webフレームワークで同じ画面を作ってみる (Laiz編)

PHP

元ネタはJavaなのでGWTでやろうと思ったけど画面遷移がないのでRPCを使ったとしてもうまく仕様に合わせられない。MVPで途中まで書いたがイマイチに終わり…代わりにPHPで。 仕様はこれ。 足し算プログラム 計算結果は、別画面に遷移し出力する。 submit時にリ…

Gitのブランチ名からissue idを生成するcommit-msgスクリプト

http://d.hatena.ne.jp/mzp/20101118/hooks これはちょっと大がかりかなと思って、ついでに 以下、使用してみて思ったこと。・refs [チケット番号]をrefs #[チケット番号]にしたい →Redmineのコミットログからチケットへの遷移が可能になる・id/[チケット番…

UiBinderで独自クラスを使う場合のコンストラクタ

GWT

例えば、SimplePagerでfastForwardRowsの行数を変えたい場合*1。 package myapp.client.widget; import com.google.gwt.core.client.GWT; import com.google.gwt.uibinder.client.UiConstructor; import com.google.gwt.user.cellview.client.SimplePager; /…

GWT MVPあれこれ

GWT

Place, Activity, View, Presenter を使った開発が段々分かってきた。 以下一連の流れ。だいたいは http://code.google.com/intl/ja/webtoolkit/doc/trunk/DevGuideMvpActivitiesAndPlaces.html ここの通り。 まずclient.viewパッケージ以下にFooViewインタ…

一時的なデータ置き場

Javaで一時的なデータをどこに保存しようかと調べていた。 File.createTempFile はサーバーでは使えなさそうだし…ということで、EHCacheを試す。 http://journal.mycom.co.jp/articles/2010/05/19/ehcache/index.html 簡単な使い方はここ。 ダウンロードは h…

JavaMailは遅くなかった

http://d.hatena.ne.jp/n314/20101118/1290101208 Postfixが遅かった。 原因は不明。 下に追記 開発マシン time /usr/sbin/sendmail -t < /tmp/body.txt real 0m0.032s user 0m0.004s sys 0m0.008s サーバー time /usr/sbin/sendmail -t < /tmp/body.txt rea…

JavaMailが遅い

SMTPを喋ってるから遅いのかな?と思ってsendmail実行に切り替えてみた。 class MailService { ... private final boolean useSendMail; public MailService(){ if (new File(SENDMAIL_PATH).exists()) useSendMail = true; else useSendMail = false; } ...…

GWTでRPCの共通処理

http://d.hatena.ne.jp/n314/20101026/1288070773 ここでRPC処理も含めてjarを作れば簡単に共通化できるよねと書いたんだけど、うまくいかない。 これを書いたときはうまくいってたのかな…ちょっと覚えてない。 jarの中のServiceAsyncを呼び出すと、Incompat…

GWTのHudson用ビルドスクリプト

GWT + Git + Hudson の設定 - より良い環境を求めて の続き ほとんど変更がないけれども #!/bin/bash USAGE="Usage: gwt-build.sh com.company.appname.ModuleName dirName appPath" if [ "$1" == "" ]; then echo "ERROR: Required module name." echo $USA…

Ext GWT のライセンスとかバージョンとか

検索したら、Ext GWTを使うとGPLだから公開しないといけないと書かれた記事が複数見つかったけど、受託開発とかじゃなかったらGPLは関係ないよね? http://www.slideshare.net/naotori/080826-ext3slideshare-presentation これとか、一見詳しいんだけど…。 …

ActivitiyとPlaceを使ったGWT MVP開発

GWT

なかなか頭に入らなかったので図を描いた。 https://cacoo.com/diagrams/nOyKQhP02LcxOV4u 見にくいね…。 参考: http://code.google.com/intl/ja/webtoolkit/doc/trunk/DevGuideMvpActivitiesAndPlaces.html http://d.hatena.ne.jp/soundTrick/20101013/128…

セッションIDの変更

Javaの標準ではPHPのsession_regenerate_id()のような仕組みは無いのかな? コメントより 詰め替えしてinvalidate()するInterfaceを作りました。 Teeda -- HttpSession.invalidate()する際の注意点 - jfluteの日記 ここは手動でやるしかないのかなぁ…。 http…

単純なファクトリクラス

ソース探索していると、こんなクラスがあった。http://www.seasar.org/source/browse/s2container/trunk/seasar2/s2-framework/src/main/java/org/seasar/framework/container/assembler/AutoBindingDefFactory.java?revision=4417&view=markup http://www.s…

SeasarでインターフェースをCreatorの対象にする

プロパティファイルを読み込んでインターフェースを実装したクラスからプロパティ値を受け取るということをやってみた。 インターセプタークラスを作る。 package app.lib; import java.util.Properties; import org.aopalliance.intercept.MethodIntercepto…

SeasarとJavassist その2

Seasarで自動生成されているEnhancedByS2AOPっていうクラスはどこから来てるんだ?と思って探してたら org/seasar/framework/aop/javassist 以下にそれらしきクラス郡があった。 素直にInterfaceをCreatorの対象にして、Interceptorで自動生成されたクラスを…

SeasarとJavassist

Seasarで環境別の設定を切り替えようと思って 設定情報の中でenvキーを使うことによって環境に依存した設定値を扱うことができます. systemConfig.propertiesで以下のように本番環境のJDBC接続情報を定義しているとします. envキーを使って環境名をstaing…

引数名は取得できないらしい

https://www.seasar.org/issues/browse/DAONET-25 メソッドの引数名を取得したくて調べていたら、できないと書いてあった。 クラス名+変数名でAOPしようと思っていたので…どうしよう。 アノテーションを書かないといけないのは微妙だ…。

GWT + Git + Hudson の設定

昨日色々考えた末に、Hudsonを使ってみることにした。 名前は知っていてちょっと大げさかなと思っていたのだがMavenに比べたら簡単そうだ。 http://gihyo.jp/dev/feature/01/hudson/0001 ここを参考にしつつ。 Debian squeezeでの作業ログ。 Hudson can be i…

Mavenの設定(途中)

「ヘルプ」→「新規ソフトウェアのインストール」から http://q4e.googlecode.com/svn/trunk/updatesite-iam/ を指定して、全部にチェックを入れてインストール。かなり時間がかかる。 プロジェクトの右クリックメニューから「Maven 2」→「Convert to Maven P…

GWTとSeasar2で共通処理

GWTで共通処理を書く場合はどうすればいいのかを調べていて、GWT-RPCを別のアプリに送信する方法を試した。 まず、CommonService.javaの@RemoteServiceRelativePathアノテーションでひとつ上の相対パスを指定します。 /** * The client side stub for the RP…

いろいろハマってる

アプリ間の連携を試してるんだけど、なかなか進まない。 Seasar2のjarをtomcat共通の場所に置いたらエラーになったりならなかったりして変な動きになった。 Seasar2関連のjarファイルは、shared/libにおいたときは、 きちんと動きません。 [Seasar-user:1576…

フレームワークは何がいいんだろう

そもそもJavaを使い出したのは PHPの自作フレームワークでもS2JDBCのようなインターフェースにしたい! 動的型付けだとぱっと見以外のメリットはほとんどなくね? S2JDBCを使ってみよう という動機と、前から気になって本も買ってあったGWTに手を出したかっ…

heartbeatとバーチャルドメイン

DRBD + webmin + heartbeat の環境が意外と難しい。 どの設定がどのディレクトリにあるのかを全部知っておかないとフェイルオーバーできない。 drbdlinksを使えばかなり作業が楽になるのだが、それでも大変。 drbdlinks.conf はこんな感じ。 mountpoint('/mn…

heartbeatのコマンドメモ

検索したらheartbeatを停止してファイルオーバーを確認、などとあるがいまいちしっくりこない。heartbeat自体は起動したままもっといいテストがある気がする。 とりあえず自動フェイルバック無効化をコマンドで設定してテスト。 設定確認 cibadmin -Q 自動フ…

DRBD8.3をsqueezeにインストール

以前はソースパッケージがあったと思ったんだけども、updateしたら無くなっていた。 なので作る。 ソースパッケージはあるっぽい。でもdpkg-buildpackageでパッケージができなかったので、gitで取ってきた。参考:http://www.drbd.jp/users-guide/s-build-de…

JBOSSでH2

H2ってJavaのSqliteみたいなもんじゃないの?手軽に使えるのがメリットじゃないの?と思いつつ苦労した。Java歴数日なのでこんなもんか…。 hsqldb-ds.xml は元々あるので、それを元に h2myapp-ds.xmlを作った。 http://lists.jboss.org/pipermail/jboss-svn-…