aspose file tools*
The moose likes Websphere and the fly likes JNDI lookup problem with ejb local interfaces Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Products » Websphere
Bookmark "JNDI lookup problem with ejb local interfaces" Watch "JNDI lookup problem with ejb local interfaces" New topic
Author

JNDI lookup problem with ejb local interfaces

john b. smith
Greenhorn

Joined: Apr 08, 2003
Posts: 23
Has anyone ever gotten an ejb cmp entity bean with (only) local interfaces to work? That is, has anyone been able to do a lookup using JNDI on one and then either a cast or narrow to get the LocalHome interface?
I've read everyting I can find on this, tried everything I can think of, and am still hung up after a week's work. (I need to do this since I am using entity relationships which are defined only on the local interfaces.) This includes Kyle's suggestions of March 4, Mike Cox's "Use java:comp to Locate . . . " article, developerWorks' "Deploying multiple applications . . . " article. Etc. I'm stymied and wonder if anyone has ever gotten a local ejb interface to work. I am using WSAD 5.0.1 on a Windows XP machine.
Here are the specifics:
0. I do have a specified DataSource that I can lookup using the "java:comp/env/NAME" form for the local JNDI namespace, and I have looked at the .xml files which seem similar to those I have for my ejbs.
1. I have a cmp ejb with (only) local interfaces, called Set, withich generates SetBean, SetLocal, and SetLocalHome.
2. Under the deployment descriptor's References tab, I create an "EJBLocalRef" called ejb/SetLocalHome. I corretly points to the Local and LocalHome for the bean and results in the following WebSphere Baindings;" ejb/ooc/ejb/td/set/SetHome.
3. In the ejb.jar file, the folowing appears:
<ejb-local-ref id="EJBLocalRef_1065716243405">
<description></description>
<ejb-ref-name>ejb/SetLocalHome</ejb-ref-name>
<ejb-ref-type>Entity</ejb-ref-type>
<local-home>ooc.ejb.td.set.SetLocalHome</local-home>
<local>ooc.ejb.td.set.SetLocal</local>
<ejb-link>Set</ejb-link>
</ejb-local-ref>
That looks right to me.
4. In the ibm-ejb-jar-bnd.xmi file, the following appears:
<ejbBindings xmi:id="EnterpriseBeanBinding_1062775164067" jndiName="ejb/ooc/ejb/td/set/SetHome">
<enterpriseBean xmi:type="ejb:ContainerManagedEntity" href="META-INF/ejb-jar.xml#Set"/>
<ejbRefBindings xmi:id="EjbRefBinding_1065716243405" jndiName="ejb/ooc/ejb/td/set/SetHome">
<bindingEjbRef xmi:type="common:EJBLocalRef" href="META-INF/ejb-jar.xml#EJBLocalRef_1065716243405"/>
</ejbRefBindings>
</ejbBindings>
5. My code to lookup the local interface is the following:
SetLocalHome setLocalHome = null;
InitialContext context;
context = new InitialContext();
Object obj = context.lookup( "java:comp/env/ejb/SetLocalHome" );
setLocalHome = (SetLocalHome)(javax.rmi.PortableRemoteObject.narrow( obj, SetLocalHome.class ));
6. After "generating deployment and rmic code" and rebuilding the project, I get the following error (within a NameingException block):
Naming Error in SetMapper.getSetLocalHome.JNDI lookup: Name comp/env/ejb not found in context "java:".
7. I can see the global-named SetHome" interface in the JNDI client test program, but haven't been able to do a direct invokation using any name I can think of to use.
8. I have tried every combination of name, build and deploy sequence, and everything else I can think of, including rebooting system to get a fresh JNDI server, stoping WAS while WSAD is running, etc., etc.
9. HELP!!!
john b. smith
Greenhorn

Joined: Apr 08, 2003
Posts: 23
oops:
Here are version of 3 and 4 from my earlier post, which I hope will show up:
<pre>
3. In the ejb.jar file, the folowing appears:
<ejb-local-ref id="EJBLocalRef_1065716243405">
<description></description>
<ejb-ref-name>ejb/SetLocalHome</ejb-ref-name>
<ejb-ref-type>Entity</ejb-ref-type>
<local-home>ooc.ejb.td.set.SetLocalHome</local-home>
<local>ooc.ejb.td.set.SetLocal</local>
<ejb-link>Set</ejb-link>
</ejb-local-ref>
That looks right to me.
4. In the ibm-ejb-jar-bnd.xmi file, the following appears:
<ejbBindings xmi:id="EnterpriseBeanBinding_1062775164067" jndiName="ejb/ooc/ejb/td/set/SetHome">
<enterpriseBean xmi:type="ejb:ContainerManagedEntity" href="META-INF/ejb-jar.xml#Set"/>
<ejbRefBindings xmi:id="EjbRefBinding_1065716243405" jndiName="ejb/ooc/ejb/td/set/SetHome">
<bindingEjbRef xmi:type="common:EJBLocalRef" href="META-INF/ejb-jar.xml#EJBLocalRef_1065716243405"/>
</ejbRefBindings>
</ejbBindings>
</pre>
 
It is sorta covered in the JavaRanch Style Guide.
 
subject: JNDI lookup problem with ejb local interfaces
 
Similar Threads
local JNDI lookup
Can a Local EJB call another Local EJB?
Entity beans could not be used (WSAD 5)
Local Lookup Problem in WSAD!!
HELP: Jndi names disappear when deploying