All-In-One Eclipse 2.0.0のWTPが使い物にならない

現在の職場で、J2EE開発をしようとしている。開発環境として、All-in-one Eclipse v3.1.1を採用予定。WTPJ2EE開発としゃれ込むのである。

わかっている。
すでにAll-in-one Eclipse 2.0.0(番号が若いが、こちらのほうが新しい)が登場しており、こちらにはWTP1.0が積んである。大量のバグフィックスが含まれるのだから、こっちを使いたい!

が、困った問題があって、採用が見送られている。

普通にEJBプロジェクトを作って、J2EEパースペクティブで見てみる。

画像

tawakeプロジェクトを作ってみた。作ったばかりのEJBプロジェクトのコンパイルが通らないのは、そういうものであって、べつになにか設定にミスっているわけじゃない。ここで一度Eclipseを落として、再び起動する。すると・・・。

画像

いなくなっとる!!

画像

こんなところに・・・。

そう、いきなり「その他のプロジェクト」扱いになるのだ。これ、表示位置が変わるだけじゃなくて、いろいろ問題を起こす。

たとえば、この移動してしまったプロジェクトを消さないかぎり、新しいEJBプロジェクトを作ることができない。XMLファイルの解析で例外を吐く。また、プロジェクトのプロパティでJ2EE部分を見てみるだけで、NullPointerExceptionが発生、最悪の場合普通の手段でeclipseを終了できなくなる。

しかし、俺がEclipse3.1.1または3.1.2とWTP1.0の組み合わせをイチから作ると、こんな間抜けなことにはならない。そうなると、たぶんWTP1.0は悪くない。All-in-one Eclipse 2.0.0が何か悪いことをしている。

そこで、設定ファイルを舐めていったわけだが・・・。
PROJECT/.settings/org.eclipse.jst.common.project.facet.core.prefsが怪しい!

All-in-one Eclipse 2.0.0
classpath.helper/org.eclipse.jst.server.core.container\:\:org.eclipse.jst.server.generic.runtimeTarget\:\:\u6C4E\u7528\ BEA\ WebLogic\ \u30B5\u30FC\u30D0\u30FC\ 8.1(\u6C4E\u7528)/owners=jst.ejb\:2.0

自分で作ったやつ
classpath.helper/org.eclipse.jst.server.core.container\:\:org.eclipse.jst.server.generic.runtimeTarget\:\:Generic\ BEA\ WebLogic\ Server\ v8.1/owners=jst.ejb\:2.0

・・・サーバの種別名あたりが、Unicodeエスケープされている。試しに英語の名称を与えてみると、ゴキゲンに動作する。どうも、日本語化している点に問題があるようだ。WTP0.7ではこのへんの設定をXMLで持っているので、Unicodeエスケープなんてしていない。だから、日本語化しても動く。

All-in-one Eclipse 2.0.0に含まれるパッケージを見てみると、WTP1.0に対して、WTP0.7のNLSパッケージをむりやり当てている。こいつのせいかもしれない。そういや俺、Eclipseは日本語化せずに使ってるわ。

「汎用 BEA WebLogic サーバー v8.1 (汎用)」という名称の日本語部分がエスケープされているので、これを日本語を使わない形に書き換えられればよいのだが、これはWTPが内部で抱え込んでいる固定値なので、おいそれを編集できない。

解決はたやすい。NLSを当てなければよいのである。が、嘆かわしいことに、世の中の一般的なエンジニアは、日本語化されていないツールを見ると拒否反応を起こす。ツールの堅牢さよりも見た目の安心感を取るのである。

さてさて、どうしようか。WTPのリリースノートに乗っているフィックスされたバグの一覧をみると、このまま0.7を使い続けるのは怖いのだが・・・。だいたい、先々のことを考えると、すでに旧式化したWTP0.7を使うのはちょっとねぇ。WTP1.0がメジャーバージョンアップで、設定ファイルの構造も変わってしまった。ここで追いついておかないと後々面倒になる。

以上、メモ書き。