1.6.0_14でデバッグの挙動がおかしい

メモ。Eclipse のところ (279137) でいろいろと書いてあるけど、Sun Java 1.6.0_14 で 6862295 という、開発者には困った問題がある。ブレークポイントをしかけて、デバッグで止まらないとすごい困ると思うのだけど…(-XX:+UseParallelGC をすればいいみたいだけど、P1 バグくらいな感じがするのだけど…)。

Mobyletを使う

Fess に Mobylet を投入してモバイルサポートを進めている。0.8.2 を使いはじめているけど、POST で送信したときのアクションが呼ばれてないみたいな気が(原因を調べないといけないけど)。Mobyletの画像変換はかなり便利だと思う。モバイルの画面表示で画像のサイズをどうするかとかを悩まずに、画面幅の 80% くらいみたいな指定でできてしまう。あとは、キャリア判定も

Mobylet mobylet = MobyletFactory.getInstance();
Carrier carrier = mobylet.getCarrier();
switch (carrier) {
case DOCOMO:
// ドコモだよ
break;
case AU:
// auだよ
break;
case SOFTBANK:
// ソフトバンクだよ
break;
default:
// PCなど
break;
}

みたいにさっくり書ける。これ以外にも絵文字処理をやってくれるし。そんなわけで、Javaでのモバイルウェブアプリの敷居を下げてくれることでしょう(そうそう、MobyletってSeasarから提供されているけど別にS2なくても動く感じ)。

PDFから文字列取得

PDFBox を使うと、PDF から簡単に文字列を取得することができる。

PDDocument document = PDDocument.load(in);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
Writer output = new OutputStreamWriter(baos, encoding);
PDFTextStripper stripper = new PDFTextStripper();
stripper.writeText(document, output);
return baos.toString(encoding);

Maven2 でこれしたいなら、以下を pom.xml に書く。

<dependency>
<groupId>pdfbox</groupId>
<artifactId>pdfbox</artifactId>
<version>0.7.3</version>
</dependency>

一応、文字化けもしないみたい。