- PR -

EJBをlookupする際のEJBの呼び出し方

1
投稿者投稿内容
つちつち
会議室デビュー日: 2004/10/21
投稿数: 17
投稿日時: 2005-07-12 12:52
こんにちは、よろしくお願いします。
現在、JBoss4.0.2にてJSFを使用したJ2EEアプリを作成しております。
それで、マネージドビーンよりEJBをlookupする際のEJBの呼び出し方で悩んでいます。
今のところ、、、

 Context initial = new InitialContext();
 Object objref = initial.lookup("Select");

とすることで、EJBがうまく呼び出せるのですが、

 initial.lookup("java:comp/env/ejb/Select");

といった感じでENCを利用したいのですがうまくいきません。

現在の、アプリ側の web.xml(抜粋)と、EJB側の ejb-jar(抜粋)は以下のとおりです。

・web.xml
-------------------------------------
Selectに関する指定なし
-------------------------------------

・ejb-jar.xml
-------------------------------------
<session>
<display-name>Select</display-name>
<ejb-name>Select</ejb-name>
<home>dept.SelectHome</home>
<remote>dept.Select</remote>
<ejb-class>dept.SelectEJB</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Container</transaction-type>
<ejb-local-ref>
<ejb-ref-name>ejb/DeptinfoLocal</ejb-ref-name>
<ejb-ref-type>Entity</ejb-ref-type>
<local-home>dept.DeptinfoLocalHome</local-home>
<local>dept.DeptinfoLocal</local>
<ejb-link>Deptinfo</ejb-link>
</ejb-local-ref>
</session>
-------------------------------------


ちなみに、アプリ側の web.xmlに以下を追加するとデプロイ時にエラーが発生します。
・web.xml
-------------------------------------
<ejb-ref>
<ejb-ref-name>ejb/Select</ejb-ref-name>
<ejb-ref-type>Session</ejb-ref-type>
<home>dept.SelectHome</home>
<remote>dept.Select</remote>
<ejb-link>dept.Select</ejb-link>
</ejb-ref>
-------------------------------------

デプロイエラーの内容

2005-07-12 12:43:55,954 ERROR [org.jboss.deployment.MainDeployer] could not start deployment: file:/C:/Server/jboss-4.0.2/server/default/deploy/jsf01.ear
org.jboss.deployment.DeploymentException: Error during deploy;
- nested throwable: (javax.naming.NamingException: ejb-ref: ejb/Select, no ejb-link in web.xml and no jndi-name in jboss-web.xml)

状況はこんな感じです。。。
ということで、ENCで "java:comp/env/ejb/Select"と呼び出すことのできる設定についてアドバイスいただけたらと思います。
よろしくお願いします。

[ メッセージ編集済み 編集者: つちつち 編集日時 2005-07-12 23:47 ]
(株)ぽち
ぬし
会議室デビュー日: 2002/09/10
投稿数: 376
投稿日時: 2005-07-13 00:07
返答がないようなので、かなり正確な答えからは
遠いと思いますが、一応気になったところを。

web.xmlのejb-linkはdept.Selectじゃなくて
Selectではないかしら。

ちょっと環境もないので確かめられませんが。。
つちつち
会議室デビュー日: 2004/10/21
投稿数: 17
投稿日時: 2005-07-13 11:36
ぽち様
ご返答ありがとうございます。

早速、確認してみました。
web.xmlのejb-linkをdept.SelectからSelectに修正することで、
マネージドビーンからのlookup呼び出しが、
 initial.lookup("java:comp/env/ejb/Select")でうまく動くようになりました。
ちなみに、web.xmlを修正すると、
 initial.lookup("java:comp/env/ejb/Select")でも、
 initial.lookup("Select")でも両方動きました。

今後もJNDIについてよく勉強し理解していきたいと思います。
どうもありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)