BPMN 2.0

BPMN といえばビジネスプロセスの記法であるが、それ自身が直ちに実行可能な形式ではない。BPM ベンダーの製品では BPMN で記述されたプロセスモデルを実行可能なものはあるが、それは内部的に BPEL 等に変換していたり、そのた独自の方法によって実行してい…

ひさしぶり

最近全然はてなダイアリー使ってないや。気分転換にタイトルとテーマを変えてみた。またすぐに変えてしまうかもしれません。ふと思い立ったので、ゆるゆると再開していきます。お仕事の関係などもありますので、これからしばらく BPM (Business Process Mana…

[Linux][Apache] SELinux 上での mod_proxy_ajp

SELinux の有効になっているサーバ上で Apache 2.2 + Tomcat 6 の連携をやろうとしてちょっとはまった。普通に proxy_ajp.conf を設定したのだが、 LoadModule proxy_ajp_module modules/mod_proxy_ajp.so ProxyPass /webapp/ ajp://127.0.0.1:8009/webapp/ …

[Spring] TestContext Framework で WebApplicationContext を使う

Direct Web Remoting (DWR) を Spring 統合含めて導入したら、これが WebApplicationContext でしか利用できないスコープを利用しているみたいで、ユニットテストで ApplicationContext の生成ができなくなってしまった。この問題は認識されているようで JIR…

SLF4J + Logback への完全移行

以前、SLF4J に依存したライブラリの追加により SLF4J を導入したが、今回そこからさらに進めて完全に SLF4J + LogBack に移行し、Commons Logging と Log4J への依存を完全になくした。以前の対応では、以下の2つの構成が混在していた。 Commons Logging -…

[freemarker] Map のデータでループを回す

Freemarker で Map のデータの一覧を表示させようとしたのだが、Java で EntrySet を利用するような感じで実現する方法はわからなかった。Java なら以下のようなコードを書くのだが。 for( Map.Entry entry : map.entrySet ) { System.out.println(entry.key…

Mac 版 Firefox の Flash Player で日本語入力できるようになった!

以前から、Mac 版 Firefox の Flash Player で日本語入力ができないという問題があった。Mac版Firefox 3正式版に、日本人ユーザにとって結構致命的な問題が残ってしまいそうな件について私の環境ではなぜか日本語どころか半角英数も入力できなくて、まったく…

[BPMN] BPMN1.1 と BPMN1.2 の違い

BPMN(Business Process Modeling Notation) の新バージョン 1.2 が今月に入って公開されていたので、1.1 から何が変わったのかを調べてみた。1.0 から 1.1 は結構変わってたしなあ。というわけで仕様書を見てみたのだが、はっきり言って違いがない。BPEL へ…

[Java] デフォルトロケール

Java では動作環境によってデフォルトのロケールやエンコーディングが異なる。この違いによって、 ResourceBundle を利用したときのメッセージの言語 Reader/Writer を使うときのエンコーディング が違ってくる。ロケールは Locale.setDefault() メソッドで…

SLF4J を使う

Hibernate のバージョンを 3.3 に上げたら、ロギングフレームワークが SLF4J に変わっていた。そのまま実行しようとすると以下のエラーが出た。 SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". SLF4J: See http://www.slf4j.org/codes.h…

[Java] Java SE 6 では @Override アノテーションがインターフェイス実装メソッドで使える

最近 Java SE 6 を使っているが、JDK 1.4 から 1.5(5.0?) の劇的な変化に比べると大きな仕様変更はなく、正直なところそれほど違いを意識して使っていない。ひとつ、本当にささいな点ではあるが微妙に便利になっているのが、@Override アノテーションの仕様…

[Spring][Quartz] Quartz の Job から Spring の ApplicationContext にアクセスする

Spring には Quartz の統合が含まれており、簡単に Quartz のスケジューラが使えるようになっている。Spring 上で Quartz を動かすと、当然ジョブから ApplicationContext で定義したサービスを利用したいケースがでてくる。Spring で Quartz を使うには Sch…

[PostgreSQL] PostgreSQL での現在時刻取得

PostgreSQL で現在時刻を取得しようとして now() 関数を使うと、えらく古い時刻を返されることがある。実は PostgreSQL の now() 関数は、その関数が評価されたタイミングの時刻ではなく、トランザクションを開始した時刻を返す。それはそれで使い道があるの…

[Struts2] アクション名にスラッシュを許す

struts2 では、ネームスペース名とアクション名でアクセス時のパスが決定される。 http://HOST_NAME/CONTEXT_NAME/NAMESPACE_NAME/ACTION_NAME.suffixネームスペースには普通にスラッシュを含めて階層化できるけど、DefaultActionMapper を使っている場合に…

[Maven2] リモートリポジトリへのファイルの deploy

最新のライブラリが公開されているリポジトリに登録されていなかったり、ライセンスの関係上公開されていないものがあるので、社内リポジトリを構築することにした。サーバ側は Apache で mod_dav と mod_dav_fs を入れて WebDAV を有効にするだけ(ここでは…

買って良かったワーキングチェア

ワーキングチェアのことが話題になっていたので、私も自分のイスのことについて書いてみる。私はオカムラのバロンを使っていて、それなりに満足している。まあ、まだ2ヶ月程度しか使ってないので参考まで。買ったイスは、以下のもの。これで10万円ちょっと…

[Struts2] FreeMarker での JSP タグの利用

さきほど、FreeMarker でプロパティを表示する方法として、 ${name}と書いたが、struts のタグを利用して JSP で書くとすると、 <s:property value="name" />となる。で、struts のタグは FreeMarker でも利用することができて、 <@s.property value="name" />といった感じで表記できる</s:property>…

[Struts2] Value Stack

Value Stack は Struts2 のひとつ特徴的な機能かな。便利ではあるけれど、どういう動作をしているかがちゃんとわからないと気持ち悪い。まず簡単な利用法としては、ビューから Action クラスの getter メソッドに簡単にアクセスできる。Action クラスに getN…

[struts2] codebehind プラグイン

codebehind プラグインを使ってるなら、@Result アノテーションも不要だった。struts.xml に以下の設定を追加しておけば、 <constant name="struts.codebehind.pathPrefix" value="/WEB-INF/JSP/" />@Result アノテーションが無くても /WEB-INF/JSP/test/hoge-success.ftl もしくは /WEB-INF/JSP/test/hoge.ftl が利用される。検索さ</constant>…

[Struts2] ZeroConfiguration

Struts2 は日本語ではあまりまとまったドキュメントはないみたい。まあ本家サイトがそれなりにしっかりしているからいいか。Struts2 は Struts1.x とはまったく別物とはいえ、基本的なアーキテクチャは大きく違うわけではないのでそれほど取っつきにくくはな…

Struts2 ことはじめ

ここ1〜2年はサーバやネットワーク構築とかインフラ系の仕事をしていたので、プログラムをちゃんと書くのは久しぶり。すっかり浦島太郎状態。これから Java でそれなりに規模の大きい開発を行うとして、どのフレームワークを使うのがいいか。JBoss Seam に…

はてなダイアリーはじめました

ふと思い立って、はてなダイアリー始めました。技術のこととか日々の生活のこととかを気が向いた時に書きます。飽きっぽいのですぐにやめるかもしれませんが、ゆるゆるやっていきます。