JBoss 6.0.0.final Unable to lookup 2.1 Entity Bean local-home from java:comp/env
mitchelladam83 Aug 9, 2011 7:20 AMHi,
Our app is currently migrating from 4.2.3 to 6 and I'm currently getting problems trying to lookup EJB 2.1 entity beans using the java:comp/env/ejb for any of the beans.
configuration of them is as follows:
--ejb-jar.xml
<ejb-jar version="2.1" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/ejb-jar_2_1.xsd">
<display-name>server-utils-ejbs</display-name>
<enterprise-beans>
<entity>
<ejb-name>Example</ejb-name>
<local-home>com.test.util.timer.ExampleHome</local-home>
<local>com.test.util.timer.Example</local>
<ejb-class>com.test.util.timer.Example</ejb-class>
<persistence-type>Container</persistence-type>
<prim-key-class>java.lang.String</prim-key-class>
<reentrant>false</reentrant>
<abstract-schema-name>Example</abstract-schema-name>
<cmp-field>
<description>This is the PK</description>
<field-name>key</field-name>
</cmp-field>
<cmp-field>
<field-name>id</field-name>
</cmp-field>
<primkey-field>key</primkey-field>
</entity>
</enterprise-beans>
</ejb-jar>
--jboss.xml
<?xml version="1.0" encoding="UTF-8"?>
<jboss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.jboss.com/xml/ns/javaee" xsi:schemaLocation="http://www.jboss.com/xml/ns/javaee http://www.jboss.org/j2ee/schema/jboss_5_1.xsd" version="5.1">
<security-domain>java:/jaas/server-login</security-domain>
</jboss>
JNDI tree shows that the entity is bound:
java:comp namespace of the Example bean:
+- TransactionSynchronizationRegistry[link -> java:TransactionSynchronizationRegistry] (class: javax.naming.LinkRef)
+- env (class: org.jnp.interfaces.NamingContext)
| +- security (class: org.jnp.interfaces.NamingContext)
| | +- subject[link -> java:/jaas/server-login/subject] (class: javax.naming.LinkRef)
| | +- realmMapping[link -> java:/jaas/server-login/realmMapping] (class: javax.naming.LinkRef)
| | +- security-domain[link -> java:/jaas/server-login] (class: javax.naming.LinkRef)
| | +- authorizationMgr[link -> java:/jaas/server-login/authorizationMgr] (class: javax.naming.LinkRef)
yet elsewhere in the application where I try to do:
Class<H extends EJBLocalHome> homeClass = com.test.util.timer.ExampleHome.class;
home = new InitialContext().lookup("java:comp/env/ejb/ExampleHome", homeClass);
i get: {javax.naming.NameNotFoundException@41333}"javax.naming.NameNotFoundException: ExampleHome not bound"
has the ENC binding changed between 4.2.3 and 6 so that these entries in the ejb-jar are not bound to the same locations?
any help would be appreciated, thanks
Adam