Java

Seasar2のHotDeployを初めて真剣に味わった。

SeasarはHotDeployが凄い。とは聞いていたんですが、僕は勝手に「それってtomcatのauto reloadじゃないの。Seasarが頑張ってるんじゃなくて、Tomcatがやってるんでしょ。」みたいな食わず嫌いと言うか誤解をしていた。たまたまひがさんのブログでrailsについ…

Apache Wicket

乱立するJavaのWebApplicationのframeworkですが、流れとしてはRORに流れに乗って設定を行わない方向で進んでいます。そんななかで、Apacheプロジェクトに移っていたWicketが1.3でリリースされてます。 ざっとさわってみましたが、以下感想(と言っても、撫で…

改行コードをとる。

自分で定義しちゃ、ダメよ。System.getProperty("line.separator")確かOS毎のline separatorを取得も出来たと思うんだけど忘れた。

Behavior.selectEntityWithDeletedCheck()

名前を見た瞬間SoftDeleteを判断するメソッドかと思いきや、実は1行取得時のnull値判断を内包してるだけらしい。つまり、該当レコードが無い場合 Behavior.selectEntity()はnullになるが、 Behavior.selectEntityWithDeletedCheck()はnullにならず、EntityAl…

db4o

オブジェクト指向のデータベース。リレーショナルではないのでORマッピングみたいな余分な作業がいらない。この分野ではCachéが結構有名だけれども何せ高い。 4年前ぐらいにセミナー言ったけど、そのとき「ざっくり200万ぐらいからですかね。」とか言ってた…

ActiveObjects

Active RecordのJava実装は最近多いですが一番まともに行きそうなactiveobjectsというのを試してみました。以前にActiveRecordJavaを試してみましたが、まだまだ始まったばっかりって感じで、開発者自ら「infant」といっていましたが、こちらは結構出来てる…

bean:size

StrutsのTaglibを使って、ループ処理をする場合、初回を条件指定するのはIndexIdプロパティを用いてできすが、最後を条件にするのにこまってました。taglibにbean:sizeというのを見つけました。コレクションのサイズをPageスコープに設定できるので、これ使…

S2StrutsでカスタムValidatorを作る

S2StrutsでカスタムValidatorを作る際の手順。いつも忘れて悩むから validateメソッドを実装 validator.xmlに追加。 ココまではStrutsと同じ。 annotationインタフェースクラスを追加 ConfigRegisterをimplementsして、レジスタクラスを追加 validator.dicon…

S2Strutsで動的なURLにリダイレクトする。

S2Strutsはフォワード先をアノテーションで指定できるので設定が減っていいんですが、フォワード先あるいはリダイレクト先を動的に作りたい場合、堅物で困る。 アノテーションだったりスタティック定数だったりするので仕方ない面も感じますが。でも、どうし…

ActiveRecordJava

RORがはやってますが、RORがすごいのは確かに認めますがもっとすごいのはRubyのORマッパーのActiveRecordの方がすごいと思います。 ActiveRecordのおかげでRORは流行ったといっても過言じゃ無いでしょう。で、JavaでActive Recordパターンの実装をしてる人が…

Javaの丸め

丸めなんだから丸めなんだよ!!お題 0.51000001を小数点以下第3位で切り上げないさい。人間の感覚(多分) 0.51丸め 0.520.51にしたければ、第4位以下を切り捨ててから、やるのが正しい。間違って使うと数値狂うよ。

pager-taglib

ページング処理って毎度毎度面倒臭いです。railsはActiveRecordで実装されてるし、phpはPEARでpagerあるし、CakePHPでもBakeryで既に実装方法が書いてあったりと自前で実装することは無くなってきます。Javaでもいくつかあるんだけど、古参としてjsptagsにあ…

StrutsでResourcesから値を直接取得する。

・Actionの中で取得するとき org.apache.struts.action.Action#getResources(HttpServletRequest) MessageResources resources = getResources(req); String msg = resources.getMessage("key.string"); ・ActionFormの中で取得するとき org.apache.struts.v…

S2StrutsでValidateエラーの表示タイミングを制御する

S2StrutsでPOJOなActionを作った場合、validatorでのエラー表示とActionでのエラー表示を同じタイミングで出すことはデフォルトではできません。actionのPOJOをあきらめてValidatorFormをextendすると以下の様にaction内でmessegeを取得できるようです。 Act…

Java-PL/SQL via OCI

JavaでOracleのPL/SQLをコールしている場合、PL/SQLをコンパイルした後にコールするとORA-6508でエラーになる場合があります。おそらくJavaでコネクションプールを使用しているせいで(リ)コンパイルが正しく反映できていないようです。そんな場合は素直にJav…

Tomcat5.5でのDataSource

Tomcat5.0→5.5でDataSourceの設定方法が変わってる。うっとい。 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4"> MySQL Tes…

Struts2.0

StrutsのメジャーバージョンアップはどうやらWebWorkベースらしい。 マニアック好きな僕はWebWork好きだったので結構うれしい。Strutsめんどくさいことが多すぎる。Is that all there is? Not by a long shot! Soon, we will also offer a new Action 2 fram…

Hibernate3でのネイティブSQL

Hibernateの2から3になったことでネイティブSQLのメソッドが変更されています。 ザックリとはQueryから分離され、SQLQueryで実装されています。実装は以下の通り SQLQuery query = getSession().createSQLQuery(sql); query.addEntity("abc", Abc.class);詳…

Iteratorと添え字アクセス

JDK5の拡張ループは配列に対する場合は添え字アクセス、Coellectionに対する場合はIteratorでの処理に変換されるみたい。 AllayListなどランダムアクセスが有効な場合は遅くなるらしいどう考えたってIteratorでやる方が遅くなるだろうけど、人間の感覚からし…

JDK5でのMapイテレーション

JDK5からは拡張ループにより記述を短くできます。 List系は覚えられるんだけど、Mapはなかなか頭に残らないのでimport java.util.*;public class For3 { public static void main(String[] args) { // マップにキーと値を格納する Map map=new HashMap(); ma…

半角チェック

日本語処理っていつも思うけど、もっとスマートにならんの? その点Perlはマルチバイト処理がいい感じでかける。見ても思い出すのに時間がかかるけどpublic static boolean containsHalfWidthKana(String str) { if (str != null) { char[] chars = str.toCh…

InputStream → String

InputStream in = request.getInputStream(); int k; int aBuffSize = 1123123; String StringFromWS=""; byte buff[] = new byte[aBuffSize]; OutputStream xOutputStream = new ByteArrayOutputStream(aBuffSize);while ( (k=in.read(buff) ) != -1) xOutp…

Javaの旧バージョンのコンパイル

J2SE1.5でターゲット指定してコンパイルすると以下のエラーがでちゃいました。 ターゲットリリース1.1がデフォルトのソースリリース1.5と競合しています だそうです。Javaの旧バージョンのコンパイル SUNのJavaはVer.1.1から1.2に変わるときに大きな変更があ…

Image Tag Library

JSPでの画像処理をやってくれるTaglib探してたらsandboxにありました。 早速試してみましたがどうもリサイズとかでは一旦servletにリクエスト投げてる模様。何故??でちょっといじったら 絶対URI: http://jakarta.apache.org/taglibs/image-1.0 はweb.xmlまた…

checkstyle

コーディングルールに反した記述をチェックしてくれます。 デフォルトでSunのJavaルールが入っているので、まずは慣れ程度に気にするのがいいかと。なれてきたら、まじめにルールセット作ってみるのもありかも。 本家 日本語リソースCheckStyle利用ガイド fr…

JK2

だいぶ前からだったのね。mod_jk2のサポート終了&開発停止は。 15 November - JK2 is officially unsupported JK2 has been put in maintainer mode and no further development will take place. The reason for shutting down JK2 development was the lac…

JBoss体験中

EJB使わんでもええやんかぁ〜〜

iBATIS

O-Rマッピングのツールとしてこんなのもあります。 まだ試してないけど・・・http://www.ibatis.com/

Cayenne

Cayenneを試して見ました。 Hibernateよりは簡単です。DAOは結局のところ独自実装??Cayenne: Overview@IT:話題のO/Rマッピングツール「Cayenne」を使う

Junitのassertメソッド

assertが予約語になった関係でassertメソッドがassertTrueに置き換わってます。JUnitを利用する際、テストケースコンパイル時にメソッドassert()において警告が発生します。 テストケースコンパイル時に警告が発生します。以下はその例。 警告: リリース 1.4…