XDoclet 基礎の基礎 (2)

実際にはパッケージを使用しないこともないでしょうし、コンパイルもするでしょう。(当たり前か)
前回よりはより実践的になるようにちょっといくつか変更してみました。


パッケージの指定

これらが生成元の Session Bean である ConverterBean です。
最初にパッケージの指定をしました。

package test.ejb;

import java.rmi.RemoteException;
import javax.ejb.SessionBean;
import javax.ejb.SessionContext;
import java.math.*;

// Public --------------------------------------------------------
/**
* Deposit money.
*
* @ejb:bean type="Stateless"
* jndi-name="ejb/SimpleConverter"
* local-jndi-name="ejb/SimpleConverterLocal"
* viewtype="both"
*/

public class ConverterBean implements SessionBean {

BigDecimal yenRate = new BigDecimal("121.6000");
BigDecimal euroRate = new BigDecimal("0.0077");

// Public --------------------------------------------------------
/**
* Convert Doller to Yen
*
* @ejb:interface-method
*/

public BigDecimal dollarToYen(BigDecimal dollars) {
BigDecimal result = dollars.multiply(yenRate);
return result.setScale(2,BigDecimal.ROUND_UP);
}

// Public --------------------------------------------------------
/**
* Convert Yen to Euro
*
* @ejb:interface-method
*/

public BigDecimal yenToEuro(BigDecimal yen) {
BigDecimal result = yen.multiply(euroRate);
return result.setScale(2,BigDecimal.ROUND_UP);
}

public ConverterBean() { }
public void ejbCreate() { }
public void ejbRemove() { }
public void ejbActivate() { }
public void ejbPassivate() { }
public void setSessionContext(SessionContext sc) { }

}

build.xml

コンパイルももともと j2ee.jar がクラスパスに入っていなくてもいいように build.xml の中で指定するようにしています。

<?xml version="1.0"?>
<project name="ejbdocletbuild" default="compile">

<property name="xdoclet.lib.dir" value="c:\XDoclet-1.2.0-beta1\lib"/>
<property name="log4j.lib.dir" value="c:\jakarta-cactus-13-1.4.1\lib"/>
<property name="j2ee.lib.dir" value="c:\j2sdkee1.4\lib"/>

<target name="init">
<mkdir dir="build/classes"/>
<mkdir dir="build/META-INF"/>
<mkdir dir="dist"/>
<echo>init complete!</echo>
</target>

<target name="compile" depends="init">
<javac srcdir="."
destdir="build/classes"
classpath="${j2ee.lib.dir}/j2ee.jar"
/>
<echo>compile complete!</echo>
</target>

<target name="archive" depends="compile">
<jar destfile="dist/project.jar"
basedir="build/classes"
/>
<echo>archive complete!</echo>
</target>

<target name="clean" depends="init">
<delete dir="build/classes"/>
<delete dir="build/META-INF"/>
<delete dir="dist"/>
<echo>delete complete!</echo>
</target>

<target name="ejbdoclet" depends="init">
<taskdef name="ejbdoclet" classname="xdoclet.modules.ejb.EjbDocletTask">
<classpath>
<fileset dir="${xdoclet.lib.dir}" includes="*.jar"/>
<fileset dir="${log4j.lib.dir}" includes="*.jar"/>
<fileset dir="${j2ee.lib.dir}" includes="*.jar"/>
</classpath>
</taskdef>

<ejbdoclet destdir="." ejbspec="2.0">
<fileset dir=".">
<include name="**/*Bean.java" />
</fileset>

<remoteinterface/>
<localinterface/>
<homeinterface />
<localhomeinterface/>
<deploymentdescriptor
destdir="build/META-INF"
validatexml="true"
/>

<jboss version="3.0"
destdir="build/META-INF"
validatexml="true"
/>

</ejbdoclet>
<echo>EJB generation complete!</echo>
</target>

</project>

ant の実行

以下のような状態から ant を実行します。
(test/ejb サブディレクトリに ConverterBean.java があります)

ejbdoclet ターゲットを実行して EJB インターフェイスのソース (Remote/Home/Local/LocalHome) を生成します。

コンパイルは以下のようなかんじです。生成されたものでコンパイルできています。(当たり前か)
デフォルトのターゲットが compile なので、ただ ant と実行するだけでも同じ結果になります。

ついでに jar ファイルにするための archive ターゲットの実行結果です。

生成結果の確認

生成されたものはこんなかんじになります。

Remote インターフェイスです。

Remote の Home インターフェイスです。

Local インターフェイスです。

Local の Home インターフェイスです。

デプロイメント・ディスクリプターです。

後半部分は今回関係ありませんが、こんなかんじです。

JBoss 用のベンダー固有の指定ファイルです。

[Top Pageに戻る]

[PR] | 貴金属 買取ハウスクリーニング韓国食材インプラント転職サイトSEOアクセス解析ハウスメーカーレンタルオフィスSEO対策消費者金融不動産担保ローン時計車 買取ハワイ挙式アスクル転職生命保険テンプレート沖縄旅行動画免許合宿二輪引越し消費者金融税理士ゴルフ会員権留学レーシックマッサージFX投資信託くりっく365アフィリエイト育毛剤FXホームページ制作デイトレードFXタイバンコクハワイ レンタカーベスト ハワイ ホテル レーツバリ島年末年始ハワイHawaii hotelsHawaii Activitiesbhhrホノルルマラソン
【運営会社「パラダイムシフト」サービス】 ハワイ現地オプショナルツアーリラックマ) - ビジネスクラス航空券 - 格安航空券(1) - 格安航空券(2) - 海外ホテル - 韓国旅行
無料ホームページ作成 - レンタルサーバー - 携帯ホームページ - ブログ - ホテル 予約 - タイムシェア - ヴィラ - ハワイ コンドミニアム - バリ島 ホテル - ハワイ 不動産 - プーケット ホテル