2011年6月21日火曜日

Eclipse でWeblogicを使う

仕事柄Oracle Weblogic, CoherenceとJavaEEを学ぶ必要があるので、EclipseでWeblogicを使ったJavaEEアプリのサンプルを作成したいと思い立った。


1. まずここからOEPEをダウンロード。

Full OEPE Installersでインストールすると、WeblogicもCoherenceもEclipse Pluginもインストールされるのでこれを選択。



インストールするとスタートアップはこんな感じです。


フォルダ階層はこのようになります。JDK1.6が入ってますね。



2. Oracle Enterprise Pack for Eclipseを起動すると、普通にEclipse 3.6が上がります。

3. ではさっそくアプリケーションのサンプルを構築したいと思います。

  JavaEEのSDKにサンプルプログラムが入っていると聞いたので、サイトからダウンロードします。SDK Update2をダウンロードしました。

4. SDKの中のfirst cupサンプルを利用します。
ここにもdocあります。

SDKをインストールするとこのように、glassfishの下にfirstcup-2.0ができます。




5. first-cupのtutorialではIDEとしてnetbeansを使用しているのですが、ここではそれをEclipseで実行してみたいので、その辺は自分でdocの中のことをEclipseに変換する必要があります。

まずEclipseのプロジェクトを作成して、その中にfirstcup/srcとwebを入れたいのですが、この場合、どのプロジェクトメニューから開始すればいいのか。。。 プロジェクトの選択肢が多すぎてわかりません。。

とりえあず使い慣れた動的WebProjectでスタートしてみます。プロジェクト名だけ入れてあとはデフォルト設定にします。



・glassfish3\glassfish\docs\firstcup-2.0\example\firstcup\のsrcを作成したプロジェクトのsrcにコピー。
・glassfish3\glassfish\docs\firstcup-2.0\example\firstcup\webを作成したプロジェクトのWebContentにコピー。

Eclipseでリフレッシュ後です。コンパイルエラーになってますね。





ソースのトップフォルダをsrcではなく、src/javaフォルダにしないといけなかったです。



ここからsrcパスをsrc/javaにするとこんなエラーが。既にsrcパス設定されている階層配下には設定できないみたいです。一度srcパスをremoveして削除してから、新しくsrc/javaに設定するとできました。



こんどは別のエラーが。

解決!プロジェクト作成するときにランタイムとしてWeblogic Serverを指定すると、Weblogicにあるjavax.ejbなどのモジュールがライブラリに入る。



でもまだ赤がありました。


javax.facesとjavax.validationの参照がない。どこでしょうー。


jsfみっけ!


でもよく見ると既にこれはWeblogicのランタイムに含まれていました。なぜエラーするのでしょうか。。。このglassfish向けのソースコードとWeblogicのランタイムのjavaバージョンが対応していないのかな?


ラインタイムで使用しているjsfバージョンはファイル名にある通り、1.1と考えられる。
Java SDKのglassfishのjsfはglassfish3\glassfish\modules\jsf-api.jarらしく、jarの中のpom.xmlを見ると、バージョンが2.1.0-b11とある。

となると、WebLogicがjsf2.1を使うようになってほしいのだが、はたしてサポートされているのか?
たぶんサポートしていないのだろうが、WebLogicのこのあたりの仕様を探してみよう。

見つけました。そもそもWebLogic11gはjavaEE 5対応でjavaEE 6 ではありませんでした。
jsf2.1はjava EE 6に含まれます。

仕方ないので、JavaEE 5のサンプルアプリケーションからやり直しです。