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);
}
}
....
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);
}
}
....