hakobera's blog

技術メモ。たまに雑談

Java

Tuppari の Java クライアントを作った

Tuppari - WebSocket on Your Cloud - - Scalaとlift のはずだった ・・・前回、Node.js で構築した Tuppari (コンセプトは Pusher クローン)を紹介しましたが、実は API 仕様が公開されていて、Node.js 以外の言語/環境でもクライアントを作ることができ…

Play framework の writeChunk で UTF-8 以外の文字列を送信するとレスポンスが止まってしまう問題の回避策

2012/7/9 追記 この問題は Playframework 1.2.5 で修正されました。以下は 1.2.4 以下を使う場合にのみ適用して下さい。最近、仕事で Play framework を本格的に使い始めて、結構惚れ込んでおります。 で、既存のアプリをどんどん Play で書きなおしているん…

JUnit4 で正規表現と一致するかどうかを判定する Matcher

こんなものは絶対に標準で入っていると思うんだけど、どうしてもみつけられなかったので、書きました。 使い方 String url = ... assertThat(url, matches("http://test\\.com/[a-zA-Z0-9]+/edit")); コード import java.util.regex.Pattern; import org.ham…

JSP で jQuery Templates が使えないのを回避する方法

Templates – jQuery API先日、オフィシャルに取り入れられることが発表された jQuery Templates ですが、みごとに JSP の EL式と構文がかぶっているため、 JSP で jQuery Templates が使えません。例えば、オフィシャルサイトの以下の例ですが、 <script> var movies…

今 JAX-RS + CDI をやるなら Glassfish 3.1 を使うべし

Glassfish 3.0.1 で JAX-RS + CDI をやると、Serializable インターフェースを実装したクラスがサーチパスにあると例外が発生するという問題がある。なので、RuntimeException を継承したクラスを作ったら即アウト。これは、Glassfish 3.0.1 に同梱されてい…

Pixiv のランキングをスライドショーで表示するWebサービスを作った

最近勉強してきたことの復習を兼ねて、週末の2日間でPixiv のランキングをスライドショーで表示するWebサービスを作った。Seiga Show ※ 2011/2/18 追記: Pixiv からの画像取得制限がかかったため、画像の表示ができなくなりました。非公式のアプリなので仕…

ドコモマーケット(iモード)関連のまとめ

ドコモのサイトとマニュアルを一通り読み終えたので、自分の整理も兼ねて、まとめてみた。 手続きなど ドコモマーケット(iアプリ)アカウント登録が必要 登録料金は \2,500/年。(2011年1月末日までに登録すると初年度無料) アプリの審査あり。審査期間は最…

Glassfish の JAX-RS の JSON プロセッサの実装がイけてないのでどうにかする

Glassfish の JAX-RS (= Jersey 1.1.5) の JSON プロセッサのリスト/配列の扱いが相当イけてない。具体的には、Jackson JSON プロセッサーと Apache Wink を組み合わせて使う に書いてある JSON.org の実装と同じ動きをする。 JSON.org プロバイダーによっ…

Doma の java.util.Date 対応で JAX-RS + Doma でハマらなくなった

JAX-RS + Doma で 100% ハマルこと - Scalaとlift のはずだった ・・・を書いたら、Doma が java.util.Date に対応してくれました! Doma 1.9.0 リリース - taediumの日記Doma が java.util.Date に対応したので、java.util.Date を利用すれば JAX-RS でエラ…

iアプリ開発ツール「AppliStudio」のマニュアルがひどい件

2010/12/6 追記: 最新版をダウンロードしてチェックしたら指摘した箇所が64bit JREで動作しないこと以外、全部直ってた。もしかして、ドコモの中の人読んでくれてた?というわけで、以下はそういうネタがありました、ということで読んでいただけると幸いです…

JAX-RS + Doma で 100% ハマルこと

Doma の Entity を JAX-RS で JSON/XML 化できないという話。 Doma がjava.util.Date 使えない JAX-RS が内部で利用している JAXB は java.sql.Date/Timestamp を変換できない Doma が java.util.Date 使えないのも少しだけ不満なのですが、これは JAXB の問…

JavaによるRESTfulシステム構築 読了

JavaによるRESTfulシステム構築作者: Bill Burke,arton,菅野良二出版社/メーカー: オライリージャパン発売日: 2010/08/23メディア: 大型本購入: 27人 クリック: 744回この商品を含むブログ (35件) を見る良書でした。JAX-RS の網羅的な解説がされているので…

Doma で DataSource を JNDI 経由で取得する方法

Seasar2 とかを使わずに JavaEE コンテナから JNDI 経由で DataSource を取得する方法のメモ。ソースをまったく書き換えることなく、UT、ローカル開発サーバ、本番環境に対応できるので便利。Glassfish v3.0.1 上の JAX-RS + CDI + Doma なアプリ環境で稼動…

SAStruts + Doma の開発環境を maven2 + WTP で構築する手順

ここ1年くらい、SAStruts + S2JDBC で新規システムの開発してきたんですが、今月から別のシステムのメンテナンス画面を作ることになりました。メンテナンス画面なので、データベースのスキーマはいじれないので、S2JDBC だと少しやりにくいな、と思っていた…

Java で Ruby の Benchmark みたいなことをやる

「大規模サービス技術入門」に影響されてアルゴリズムの勉強をはじめてから実行時間を計ることが多くなったのだけれど、なんか毎回、同じようなコードを書いているので、少し簡単に書けるように工夫してみた。参考にしたのは Ruby の Benchmark クラス。libr…

VBCode を Java で実装する

[Web開発者のための]大規模サービス技術入門 ―データ構造、メモリ、OS、DB、サーバ/インフラ (WEB+DB PRESS plusシリーズ)作者: 伊藤直也,田中慎司出版社/メーカー: 技術評論社発売日: 2010/07/07メディア: 単行本(ソフトカバー)購入: 74人 クリック: 1,77…

SAStruts + S2JDBC の開発環境を maven2 + WTP で構築する手順 その2

SAStruts + S2JDBC の開発環境を maven2 + WTP で構築する手順 - Scalaとlift のはずだった ・・・↑の後日談。 Dolteng 0.37.0 がリリースされて、前回のエントリーで書いた maven との相性問題も解消されていて、快適になってました。着実に進歩していくプ…

WicketでS2JDBCのAbstractServiceが動かないので回避方法を考えてみた

最近、仕事で Wicket を使っているのだが、S2JDBCと組み合わせたときに AbstractService がうまくインジェクションできない、という問題が発生したので、その現象と回避方法を書いておく。 ちなみに、Wicket 1.4RC-2 + S2JDBC 2.4.34 + wicket-seasar2 1.0 b…

OpenJPA でc3p0をコネクション・プーリングとして利用する方法

Java EEサーバーのコネクションプールが使えない、という場合に使えるかも。Apache commons-dbcp 用の設定はあったけどcommons-dbcp はログが何もでないので嫌だったので、c3p0を試してみたが、調べても設定がみつからなかったので試行錯誤してみた。結果、…

SAStruts + S2JDBC の開発環境を maven2 + WTP で構築する手順

実は Doltengの出力する pom.xml で、そのまま mvn eclipse:eclipse しても駄目なんです。 試したのは 現時点(2009/03/01)で最新の Dolteng 0.36.0Seasar2 も maven も大好きな自分としては悲しいです。 というわけで少し格闘してみたら、できたのでその手順…

sa-struts-tutorial の pom.xml を作った

sa-struts-tutorial には pom.xml が含まれていない。 最近は maven 使わないと開発できない体になってしまったので作ってみた。備忘録的に貼っておく。Dolteng が出力する pom.xml をそのまま使おうとしたら、上手くいかなかったので、少し改造。 何が問題…

Rails は本当に遅いのか?

Ruby on RailsがMetalに本腰を入れて取り掛かる遅い遅いと言われ続けてきたRailsがついに本格的に高速化に取りかかっているようだ。(記事を読む限りは高速レスポンスを実現できるMetalという名前のモジュールを追加した、という感じだろうか。)こうして自…

Scala Eclipse Plugin 2.7.2 RC5 をいれてみた

やっと Run As.. メニューに Scala Application ができた。 前はいちいち Run メニューから main クラスをしていたので、かなり快適になった。 というか、今までなかったのが逆に不思議。でもこれで、けっこう使えるようになってきたと思う。 しばらく使って…

Java で URI エンコード (RFC 3986)

自前エンコーディングはやらない方針で書いてみた。 とりあえず以下のコードでできた。 でも、絶対にもっといい方法がある気がする。 public static String encode(String uriTemplate) { StringBuffer buf = new StringBuffer(); for (int i=0; i

Hotdeploy と WTPの相性について その2

maven2 との連携の観点から。 Eclipse 3.4 (WTP 2.0) では以下のような動きをするというメモ。 Tomcat 前回の記事のコメントでもらった以下の情報通りにやると動かない。(アプリは動くが Hotdeploy できない)http://d.hatena.ne.jp/uriyuri/20080328/12066…

Hotdeploy と Eclipse WTP サーバープラグインの相性があまりよくないかも

thick4 で Spring でも Hotdeploy ができるようになったのだが、実は Hotdeploy の仕組みと Eclipse WTP の 各種 Server プラグインの相性があまり良くないということがわかった。Hotdeploy は Eclipse の Javaクラス自動ビルド機能を利用して、ソースの変更…

Spring で Hotdeploy を実現する thick4 公開

とりあえずモノがないと、信じてくれない人もいると思う(自分がそうなので)ので、Spring で Hotdeploy を実現するライブラリーを公開します。http://code.google.com/p/thick4/Slim3 が正式に Spring から手を引いたみたいなので、トリビュートとして thic…

Spring で public プロパティーもどき

SpringでもDIのためだけにセッターを書く必要はない、という話です。 Spring 使っている人には当たり前の話なので、読み飛ばしてください。 public class Foo { @Autowired public Bar bar; } もしくは public class Foo { @Resource public Bar bar; } 早く…

Springのメンテナンス・ポリシー変更で、Slim3 は Spring 対応しない!?

Spring で Hotdeploy を書いているわけですが、2つほどショックなことが。1つ目は Spring のメンテナンス・ポリシーの変更。http://www.springsource.com/node/558というわけで、実質的に Spring (2.5.5 以降の) のマイナー・バージョン は有償化です。 こ…

Spring で Hotdeploy その6

再読み込み対象の XML ファイルの登録。 XmlBeanDefinitionReaderCBP の機能を再現します。 /** * Registers each XML bean resource with the SpringSingletonReconfigurer. */ public class XmlBeanDefinitionReaderCBP extends JavassistClassBytecodePro…