JNDI access to local EJB interface

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Steffen

    JNDI access to local EJB interface

    Hi!

    I'm trying to access a EntityBean from a servlet via the bean's local
    home interface. The EJB and the Servlet are together in one .ear file
    and I'm using JBoss 3.2.3. I think the "<local-jndi-name>" in
    jboss-web.xml is wrong. But I don't know what to write there. I've
    searched for examples or other help, but I haven't found anything
    useful.

    Thanks for your help in advance!

    Steffen

    My XML files:

    jboss-web.xml
    <jboss-web>
    <ejb-local-ref>
    <ejb-ref-name>ejb/Article</ejb-ref-name>
    <local-jndi-name>beans/ArticleLocalHom e</local-jndi-name>
    </ejb-local-ref>
    </jboss-web>

    web.xml:
    <web-app>
    <display-name>Versionier ung: newArticle</display-name>
    <servlet>
    <servlet-name>newArticle Servlet</servlet-name>
    <servlet-class>servlets. newArticleServl et</servlet-class>
    </servlet>
    <servlet-mapping>
    <servlet-name>newArticle Servlet</servlet-name>
    <url-pattern>/newArticle</url-pattern>
    </servlet-mapping>
    <ejb-local-ref>
    <description>Lo cal reference to ArticleBean</description>
    <ejb-ref-name>ejb/Article</ejb-ref-name>
    <ejb-ref-type>Entity</ejb-ref-type>
    <local-home>beans.Arti cleLocalHome</local-home>
    <local>beans.Ar ticleLocal</local>
    </ejb-local-ref>
    </web-app>

    ejb-jar.xml:
    <ejb-jar>
    <enterprise-beans>
    <entity>
    <display-name>Article CMP-Entity Bean</display-name>
    <ejb-name>ArticleEJB </ejb-name>
    <home>beans.Art icleHome</home>
    <remote>beans.A rticle</remote>
    <local-home>beans.Arti cleLocalHome</local-home>
    <local>beans.Ar ticleLocal</local>
    <ejb-class>beans.Art icleBean</ejb-class>
    <persistence-type>Container</persistence-type>
    <prim-key-class>java.lang .Long</prim-key-class>
    <reentrant>Fals e</reentrant>
    <cmp-version>2.x</cmp-version>
    <abstract-schema-name>Article</abstract-schema-name>
    <!--cmp-fields...-->
    <primkey-field>pk</primkey-field>
    <query>
    <query-method>
    <method-name>findAll</method-name>
    <method-params/>
    </query-method>
    <ejb-ql>
    SELECT OBJECT(a) FROM Article AS a
    </ejb-ql>
    </query>
    </entity>
    </enterprise-beans>
    <assembly-descriptor>
    <container-transaction>
    <method>
    <ejb-name>ArticleEJB </ejb-name>
    <method-name>*</method-name>
    </method>
    <trans-attribute>Requi red</trans-attribute>
    </container-transaction>
    </assembly-descriptor>
    </ejb-jar>

    servlet code:
    ....
    public void init(ServletCon fig config) throws ServletExceptio n {
    super.init(conf ig);
    try {
    InitialContext jndiContext = new InitialContext( );
    articleHome =
    (ArticleLocalHo me)jndiContext. lookup("java:co mp/env/ejb/Article");
    }
    catch (NamingExceptio n e) {
    System.out.prin tln("JNDI lookup error!");
    throw new ServletExceptio n(e);
    }
    }
    ....
Working...