Java

Ajax Web ぺージを検索ボットがクロールできるコンテンツを返すようにする

最近は様々な Web サイトで Ajax が当たり前のように使われています。 ページ内のコンテンツをほぼ全てAjaxで別途ロードするようなサイトの場合、検索エンジンのロボットにはすっからかんのページがクロールされてしまいます。そのために、サーバ側で予めブ…

Java で整数値を基数 62 の文字列に変換するには

Integer.toString だと基数 36 (0-9a-z) までしか対応していなかったので自前で作った。 自然数を 62進数表記(0-9a-zA-Z)に変換する。 public static String toBase62String(final long value) { long val = value; StringBuilder sb = new StringBuilder(…

XMLGregorianCalendar のデータサンプル値

メモ。 データ型 "date" 2009-05-25+09:00 データ型 "dateTime" 2009-05-25T10:15:28.261+09:00

S2JDBC で INSERT 後に Oracle のシーケンス値 CURRVAL を取得するには

メモ。 エンティティ @Entity @Generated(value = {"S2JDBC-Gen 2.4.35", "org.seasar.extension.jdbc.gen.internal.model.EntityModelFactoryImpl"}, date = "2009/05/11 10:51:08") public class ExampleEntity extends AbstractEntity implements Seriali…

Eclipse 3.4 Ganymede リリース

Macbook Air に Eclipse 入れようと http://www.eclipse.org/ に行ってみたら、新バージョンがリリースされていた。 全然知らなかったと思って調べたところ、http://journal.mycom.co.jp/news/2008/06/27/002/index.html とタイムリーな話題だったらしい。 …

Tomcat 5.5.25 で JAASRealm でアプリケーションの Principal が設定できなくなった

メモ書き。 Tomcat 5.5.25 からレルム設定で JAASRealm の Principal に個別なクラスを設定していると、クラスローダが発見できずに落ちるらしい。 でも The Apache Tomcat 5.5 Servlet/JSP Container - Changelog を見ていたら、 Bug 44084 – JAASRealm use…

google api translate java を試す

Google 翻訳サービスを Java から簡単に使える Java ライブラリが Google Code にある。 http://code.google.com/p/google-api-translate-java/ 非常に簡単。翻訳対象文字列と元言語、変換言語を指定するだけ。 import com.google.api.translate.Language; i…

URL から StreamSource を得るには

今まで、URI を経由して URL url = 〜; new StreamSource(new File(url.toURI()))); としていたが、下記のように openStream を使用した方がいいことがわかった。 new StreamSource(url.openStream()); URL が「jar:file:/C:/xxx」のようなときに URI 経由だ…

Digester で ArrayList を生成するには

直接 ArrayList に要素を代入したいときのサンプル。 <root> <values> <value>VALUE</value> <value>test</value> <value>123456</value> </values> </root> … <pattern value="root/values"> <object-create-rule classname="java.util.ArrayList" /> <pattern value="value"> </pattern></object-create-rule></pattern>

Java でMapのキーと値をループ処理する

ジェネリックであれば、for (Map.Entry entry : map.entrySet()) でいける。ジェネリックでないものを処理するときに entrySet() をうまく使えてなかったのでメモしておく。 下記は、HttpServletRequest のパラメータを別のハッシュマップにコピーしている。…

Commons HttpClient

仕事で Java Web アプリケーションサーバから Web サービスを叩いてみるということで、HTTP クライアントをどうしようかと考えた。 プロキシ認証とかリトライとかタイムアウトとか色々ありそうなので Jakarta Commons HttpClient を試してみた。せっかくなの…

ファイルリソースの指定

Webアプリケーションを作るときにXMLファイルの読み込みなどでファイルを指定するとき、ユニットテストかWebアプリケーションサーバか、WindowsかUNIXか、とプラットフォームでパス指定が変わってくる。URL クラスのインスタンスを使用するのが良いみたい。D…

log4jの再設定

log4j.xml の設定を動的に切り替えるため、リロードメソッドを実装してみる。 import org.apache.log4j.xml.DOMConfigurator; public class LogManager { … public static reload() { URL url = getLogConfigURL() DOMConfigurator.configure(url); } }

ファイルパスの結合

ディレクトリパスをファイル名の結合をするときに、/ \ といった区切り文字を気にしないで行いたい。.NET では、Path という便利なクラスが用意されているが、Java ではそのようなユーティリティクラスはない。File のコンストラクタがその役目を担ってくれ…

XML Documentにと保存するには

生成もとの DocumentBuilderFactory の setNamespaceAware(true) を呼んでおく。

Java で文字列をMD5ダイジェストの16進数形式文字列に変換するには

public String createDigest(String source) { MessageDigest md = MessageDigest.getInstance("MD5"); byte[] data = source.getBytes(); md.update(data); byte[] digest = md.digest(); StringBuilder sb = new StringBuilder(); for (int i = 0; i < dig…

J2SEのXmlWriterは・・・

XMLの書き出しが簡単にできるクラスを探していたがない…。C#のXmlWriterと同じようなものを求めていたんだがないもよう。結局、作ってしまった。1時間探して、作ったのは40分なわけで。 Betwixtはちょっとだけ難しいことがあると簡単に対応できない。Digeste…

J2SE5.0のコードに対応したUML

Judeは1.5ソースファイルの読み込みに対応していない。もっともCommunityエディションだと1.4止まりだが。

JVMのヒープメモリの割り当てサイズ

32ビット版JVMだと2GBまで。32ビットのアドレス空間だからね。64ビット版JVMはまだあまり使われていないみたい。もちろんそれなら超えられる。あとは、1プロセスの連続したメモリ確保など、OSでの制限もあるため。 高性能マシンで使うときは色々設定を気にし…