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

WebSocketを使ったサーバプッシュ

遊びでHTML5についても少しずつ勉強。WebSocketを使うと、サーバからデータをプッシュすることができる。昔Cometを使ったことがあったけど、それに替わるものとして使い勝手がよさそう。

JBoss AS7を使い始める

JBoss ASは4.2.0.GA、5.1.0.GAを使ったことがあって、6.xも最新リリースをダウンロードして中を軽く見たみたことがあるけど、この前7.xをダウンロードしてみて、中の構成が大きく変更されていることを知った。server/default/deploy/みたいなものは、別のも…

リフレクションを使ったAOPのためのNotNull引数チェック

EJB3でのAOPのためには、@AroundInvokeアノテーションを付与したメソッドを定義したインターセプタ用のクラス(これはバインドしたいクラス自身に定義してもOK)を作り、バインドしたいクラスにインターセプタクラスを@Interceptorsアノテーションを使って付…

Seamでアプリを開発する際のTips集

※ Seam2.2。 エラー時に例外メッセージを表示する。 <pages> <exception class="org.jboss.seam.security.AuthorizationException"> <end-conversation/> <redirect view-id="/error.xhtml"> <message severity="WARN">#{handledException.message}</message> </redirect> </exception> </pages> exception要素のclass属性に何も指定しないと、任意の例外時に対する設定になる…

日付を扱うライブラリ

Joda Timeを使っていたけど、Date4jってのもあるらしい。http://www.infoq.com/jp/news/2011/12/date4j-vs-joda-timeたしかに、今関わっているやつを見ると日付「オーバーフロー」の扱いがカスタマイズできるのはよさげ。

JAXBのお勉強

@XMLRootElementや@XMLAttributeなどのアノテーションや設定値は、XML Schemaと対応する。XML Schemaについて触りを掴んでおくと、トラブルシューティングしやすい。@XmlAccessTypeに指定できるNONE/FIELD/PROPERTY/PUBLIC_MEMBERを意識する。適当に@XmlElem…

RPGツクールVX Ace

RPGツクールVX Aceの体験版が公開されたみたいなので、触ってみる。今回のスクリプトはRGSS3ってことで、どんなものなんだろう…。

ログ出力をslf4j+logbackに統一

JBoss ASとSeamを使ったアプリケーションのログ出力形式をslf4j+logbackに一元化したい。要するに、JBossのログ出力(Log4jService)の出力をうまく上書いちゃおうとする時の方法について。アプリが出すログは素直にslf4jを使ってあげればいいのだけど、JBoss …

log4jからslf4j+logbackへの移行

log4j.propertiesのようなpropertiesファイルは使わなくなり、logback.xml(テスト用の場合はlogback-test.xml)のようなxmlファイルのみになった。そのため、移行の際には設定ファイルの変更(作り直し)が必要となる。これには、以下のURLにてオンラインで…

WebサービスのためのJersey V.S. RESTeasy

お手軽Webサービスを実現するための手段という観点で、JerseyとRESTeasyを比べてみる。JavaEEのチュートリアル( http://download.oracle.com/javaee/6/tutorial/doc/gilik.html )とほぼ同じような、以下のリソースクラスをWebサービスとして公開したいケース…

EasyMock#anyObject()で使ったオブジェクトを実行後に取り出して検証する

つい最近3.1がリリースされたEasyMockだが、かつての記事でやりたいと思っていた、EasyMock#anyObject()で使われたオブジェクトを実行後に取り出す方法を考えた。使用例は以下のような感じになった。モデル。ageとnameという2つのフィールドを持つPOJO。 pub…

WebDriverがいい感じ

Webアプリのテストとして、実際にWebブラウザを使っての動きをテストしたい場合、Seleniumが使われることは珍しくないと思う。そんな時、今まではSeleniumServerを使って書いていたのだけど、WebDriverってのがあるんだね。これは便利!SeleniumServerを必要…

Embedded JBossとかEmbedded GlassFishとか。

ダウンロード:http://sourceforge.net/projects/jboss/files/Embedded%20JBoss/Embedded%20JBoss%20Beta%203/チュートリアル:http://community.jboss.org/wiki/EmbeddedAndJavaSEただまぁ、スタンドアロンな環境でさくさくっとアプリケーションの開発、テ…

XML Schema

XML

http://activemq.apache.org/xml-reference.html

JSFあれこれ

コレクションのループ処理。普通にSeamのサンプルを除いても<h:dataTable>を使ったものばかりだったので。下記のサイトを参考にした。http://d.hatena.ne.jp/shin/20090829</h:datatable>

RESTEasyとEJB(2)

以前のエントリにて、「RESTEasyを使ったアプリでセッションBeanがうまくDIできない」件、改めて考えるとできるのでは?という説。まずEJB3上でのDIのルールと、SeamでのDIのルールについて整理。 EJB3のDIの適用範囲はEJB3のみ(ここでいうEJB3というのは、…

Ajaxライブラリの比較

JBoss Seamで動くWebアプリケーションでのちょっとリッチなUIを提供するためのライブラリについて。seam-genをプロジェクトを生成すると、ICEFacesとRichFacesのどっちにする?ってことを聞かれたのが調べるきっかけ。それらに加えて、Ajax4JSFを合わせた3つ…

RESTEasyとEJB

EJBとの連携も売り文句にしているRESTEasyだけど、どうもまだ完全にうまく組み込めないみたい。まだJBoss初心者なので、設定がうまくできていない可能性も多々あるけど。 DIするために、web.xmlに明示的な設定作業が必要。インタフェースと実装クラスが1:1に…

pyglet

マルチメディアライブラリとしてpygletってのがあるらしい。ゲーム開発に使えるかも(というか2chのゲーム製作板で知ったのだけど)http://www.pyglet.org/

RCPプロダクトのエクスポート等

クラスパスやらjarやら依存プラグインやらをplugin.xml, MANIFEST.MFやらに設定する時、どこにどうすればよいかの整理。 [依存関係]タブの依存関係 依存するプラグイン を設定する。設定のためにはEclipseのpluginsに該当プラグインがインストールされている…

EasyMockのanyObject()で渡された値を検証する

DAOとO/Rマッパーを使ったアプリにて、DAOを呼び出す方のメソッドで、呼び出したエンティティの中身も確認したい。現状のテスト(抜粋) public class HogeTest { /** テスト対象のクラス */ private Hoge hoge; /** テスト対象のクラスが使うDAO */ private…

GEF

本を読んで、とりあえず基本は流し読みして、後半のGEFの部分を写経した。Eclipse 3.4 プラグイン開発 徹底攻略 Eclipse 3.4 Ganymede対応作者: 竹添直樹,志田隆弘,奥畑裕樹,里見知宏,野沢智也出版社/メーカー: 毎日コミュニケーションズ発売日: 2009/01/29…

Seasar2でできることをGuiceでやる場合

ちょっとずつこのエントリに書き足していく予定。 スコープ モジュールクラスに指定。 メソッドインジェクション インジェクション前に特定のメソッドを呼びたい、とかって場合。Providerメソッドを使う。 - すごい初歩的な疑問なんだが、エントリポイント(…

ライブラリメモ

どれもJava。 SWTBot SWTベースのGUIをテストするためのライブラリ(サポートしているコントロールは限られている模様)。http://www.vogella.de/articles/SWTBot/article.html Marathon SwingベースのGUIをテストするためのライブラリ。 JDave BDD用テステ…

トランザクションのロールバック

http://otndnld.oracle.co.jp/document/products/wls/docs103/ejb30/program.htmlEJBのビジネスメソッドによってスローされる例外に@ApplicationException(rollback=true)をつけるだけでいいのか。

EJB3.1とJBoss5.1.0GAでClassCastException

JBoss5.1.0GA上で管理されるリモートインタフェースをlookupしようとしたら、エラーになった。 Caused by: java.lang.ClassCastException: javax.naming.Reference cannot be cast to (Beanインタフェース名) 調べるとJBossのバージョン間で互換性がないだと…

DRYなログ出力について考える

ちょっとO/RマッピングツールのDomaを使ってみて、aptに感動した今日この頃。あんなこともできるんだね。そんなこんなで、今回も不満だけの書き綴り。アプリを作るに当たってログ出力について。通常のログ出力(log4jを使ってlog.info(...)やらで書く)の問題…

antを使ったDBのマイグレーション(2)

Migrate4jやMIGRATEdbもあるけれど、改めて作った。ant.jarを使ってTaskクラスをextendする形で。●Migrate4jとの主な違い ・初期設定が不要。実行時にバージョンを管理するためのテーブル(Migrate4jでいうところのversionテーブル)が見つからなければ自動で…

プラグイン備忘録

忘れないようにメモ。 バージョン管理 Subclipse コーディングルール FindBugs(バグチェック) checkstyle テスト支援 djUnit(コードカバレッジ) Quick JUnit EclEmma(テスト対象のソースコード上にマークをつける) DB プロパティエディタ

EJB3で管理されるリモートインタフェースを切り替える

JBossアプリケーション(非Webアプリ)にて、@Remoteをつけたリモートインタフェースの実装クラスをStatelessBeanとしてEJBコンテナに登録。ちなみにJBossサーバは起動済みとする。クライアント(ただのpulic static void main(String[])プログラム)からは…