// 下階層用テンプレート
#topicpath
----
//ここにコンテンツを記述します。
#contents

[[WTP>J2EE/Eclipseで開発する]]を使って開発をすると、JBossへデプロイすることができるだけでなく、jboss.xmlやjboss-web.xml,web.xmlやejb-jar.xmlを自動生成することができます。さらにはEJBの実装クラスを作成するだけで、めんどくさいその他のインタフェースファイルなども自動生成することができます。自動生成にはXDocletという、JavaDocコメントから各種設定ファイルを生成するツールが使われています。


**準備 [#j48c717b]
今回はJBossの環境を主においているので、JBossの設定ファイルを自動生成する用に設定しました。設定といっても簡単で、Eclipse上で、
 ウィンドウ > 設定 >> J2EE注釈 >> XDoclet
でXDocletのホームディレクトリなどを入れておくだけです((XDocletはあらかじめダウンロードしてどっかに解凍しておきましょう。))。

JBossなどコンテナ依存の設定ファイルは、更に下の
 XDoclet >> ejbdoclet
 XDoclet >> webdoclet
などのチェックを入れておけばよいようです。

#ref(xdoclet.png)

**web.xmlの自動生成 [#ma3ff33e]
Servletのクラスコメントにには以下のように書きました。
 /**
 * Servlet implementation class for Servlet: HogeServlet
 * 
 * @web.servlet name="HelloServlet" display-name="HelloServlet"
 * 
 * @web.servlet-mapping url-pattern="/hello"
 * @web.ejb-ref name = "ejb/HelloEJB" home = "hello.HelloEJBHome" remote =
 *              "hello.HelloEJB" type = "Session"
 * @jboss.ejb-ref-jndi jndi-name = "HelloEJBHoge" ref-name = "ejb/HelloEJB"
 */

***Servletの設定の出力 [#h1ba1bd8]
このうち
 @web.servlet name="HelloServlet" display-name="HelloServlet"
 @web.servlet-mapping url-pattern="/hello"
の部分で、
 <servlet>
    <servlet-name>HelloServlet</servlet-name>
    <display-name>HelloServlet</display-name>
    <servlet-class>hello.web.HelloServlet</servlet-class>
 </servlet>
 <servlet-mapping>
    <servlet-name>HelloServlet</servlet-name>
    <url-pattern>/hello</url-pattern>
 </servlet-mapping>
というweb.xmlが出力されます。


***ejb-refの出力 [#ie8d8902]
 @web.ejb-ref name = "ejb/HelloEJB" home = "hello.HelloEJBHome" 
              remote = "hello.HelloEJB" type = "Session"
の部分で
 <ejb-ref >
    <ejb-ref-name>ejb/HelloEJB</ejb-ref-name>
    <ejb-ref-type>Session</ejb-ref-type>
    <home>hello.HelloEJBHome</home>
    <remote>hello.HelloEJB</remote>
 </ejb-ref>
というweb.xmlが出力されます。



**jboss-web.xmlの自動生成 [#f49a574f]
***ejb-refの出力 [#b857b90b]
また先の
 @jboss.ejb-ref-jndi jndi-name = "HelloEJBHoge" 
                     ref-name = "ejb/HelloEJB"
の部分で、
 <ejb-ref>
    <ejb-ref-name>ejb/HelloEJB</ejb-ref-name>
    <jndi-name>HelloEJBHoge</jndi-name>
 </ejb-ref>
というjboss-web.xmlが出力されます。


**ejb-jar.xmlの自動生成 [#e4eec02f]
EJB実装クラスのクラスコメントには以下のように書きました。

 /**
 * @ejb.bean name="HelloEJB" display-name = "HelloEJB" jndi-name="HelloEJBHoge"
 *           type = "Stateless" view-type = "remote"
 */

このうち
 @ejb.bean name="HelloEJB" display-name = "HelloEJB" jndi-name="HelloEJBHoge"
           type = "Stateless" view-type = "remote"

の部分で、
 <session >
    <description><![CDATA[]]></description>
    <display-name>HelloEJB</display-name>
    <ejb-name>HelloEJB</ejb-name>
    <home>hello.ejb.HelloEJBHome</home>
    <remote>hello.ejb.HelloEJB</remote>
    <ejb-class>hello.ejb.HelloEJBSession</ejb-class>
    <session-type>Stateless</session-type>
    <transaction-type>Container</transaction-type>
 </session>
というejb-jar.xmlが出力されます。

**jboss.xmlの自動生成 [#u20de1cd]
また
 <session>
    <ejb-name>HelloEJB</ejb-name>
    <jndi-name>HelloEJBHoge</jndi-name>
   <method-attributes>
   </method-attributes>
 </session>
もあわせて出力されます。







 /**
  * @return
  * @throws RemoteException
  * @ejb.interface-method view-type= "remote"
  */
 public String sayHello() throws RemoteException {
     System.out.println("hoge");
     return "Hello EJB !";
 }









----
この記事は
#vote(おもしろかった,そうでもない)

#comment
#topicpath


SIZE(10){現在のアクセス:&counter;}

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS