- 追加された行はこの色です。
- 削除された行はこの色です。
// 下階層用テンプレート
#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のクラスコメントにには以下のように書きました。
/**
* 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;}