Hi all!
I have a problem with my Netweaver SP18 WebAS EJB application. The JNDI lookup fails with the following runtime error:
com.sap.engine.services.jndi.persistent.exceptions.NameNotFoundException: Object not found in lookup of CaTreeServerIFBean.
at com.sap.engine.services.jndi.implserver.ServerContextImpl.lookup(ServerContextImpl.java:649)
at com.sap.engine.services.jndi.implserver.ServerContextRedirectableImpl.lookup(ServerContextRedirectableImpl.java:80)
at com.sap.engine.services.jndi.implserver.ServerContextImplp4_Skel.dispatch(ServerContextImplp4_Skel.java:555)
at com.sap.engine.services.rmi_p4.DispatchImpl._runInternal(DispatchImpl.java:320)
at com.sap.engine.services.rmi_p4.DispatchImpl._run(DispatchImpl.java:198)
at com.sap.engine.services.rmi_p4.server.P4SessionProcessor.request(P4SessionProcessor.java:129)
at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)
at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)
at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
at java.security.AccessController.doPrivileged(Native Method)
at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100)
at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)
-
predecessor system -
com.sap.engine.services.jndi.persistent.exceptions.NameNotFoundException: Object not found in lookup of CaTreeServerIFBean.
at com.sap.engine.services.jndi.implserver.ServerContextImpl.lookup(ServerContextImpl.java:649)
at com.sap.engine.services.jndi.implserver.ServerContextRedirectableImpl.lookup(ServerContextRedirectableImpl.java:80)
at com.sap.engine.services.jndi.implserver.ServerContextImplp4_Skel.dispatch(ServerContextImplp4_Skel.java:555)
at com.sap.engine.services.rmi_p4.DispatchImpl._runInternal(DispatchImpl.java:320)
at com.sap.engine.services.rmi_p4.DispatchImpl._run(DispatchImpl.java:198)
at com.sap.engine.services.rmi_p4.server.P4SessionProcessor.request(P4SessionProcessor.java:129)
at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)
at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)
at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
at java.security.AccessController.doPrivileged(Native Method)
at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100)
at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)
-
I use the following code to lookup the EJB:
Object homeTreeObj = ctx.lookup("sap.com/anafee-server-ear/CaTreeServerIFBean");
I think the JNDI name should be right, because it's a composite name
of "provider-name/application-name/EJB-name".
My provider-name is defined in the application-j2ee-engine.xml:
<application-j2ee-engine>
<fail-over-enable mode="disable" />
</application-j2ee-engine>
My application-name is defined in the application.xml:
<application>
<display-name>anafee-server-ear</display-name>
<description>EAR description</description>
<module>
<ejb>anafee-server-ejb-3_2.jar</ejb>
</module>
</application>
My Session EJB is declared in the ejb-jar.xml:
<session>
<description>test</description>
<ejb-name>CaTreeServerIFBean</ejb-name>
<home>com.catenic.anafee.server.common.serverinterface.CaTreeServerIFHome</home>
<remote>com.catenic.anafee.server.common.serverinterface.CaTreeServerIF</remote>
<ejb-class>com.catenic.anafee.server.common.serverinterface.CaTreeServerIFBean</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Container</transaction-type>
<ejb-ref>
<ejb-ref-name>ejb/CaFastReaderManager</ejb-ref-name>
<ejb-ref-type>Session</ejb-ref-type>
<home>com.catenic.anafee.server.manager.reader.CaFastReaderManagerHome</home>
<remote>com.catenic.anafee.server.manager.reader.CaFastReaderManager</remote>
<ejb-link>CaFastReaderManagerBean</ejb-link>
</ejb-ref>
<ejb-ref>
<ejb-ref-name>ejb/CaTreeManager</ejb-ref-name>
<ejb-ref-type>Session</ejb-ref-type> <home>com.catenic.anafee.server.manager.tree.CaTreeManagerHome</home>
<remote>com.catenic.anafee.server.manager.tree.CaTreeManager</remote>
<ejb-link>CaTreeManagerBean</ejb-link>
</ejb-ref>
<ejb-ref>
<ejb-ref-name>ejb/CaTNBasicManager</ejb-ref-name>
<ejb-ref-type>Session</ejb-ref-type>
<home>com.catenic.anafee.server.manager.tree.CaTNManagerHome</home> <remote>com.catenic.anafee.server.manager.tree.CaTNBasicManager</remote>
<ejb-link>CaTNBasicManagerBean</ejb-link>
</ejb-ref>
<ejb-ref>
<ejb-ref-name>ejb/CaTreeRole2IFMappingService</ejb-ref-name>
<ejb-ref-type>Session</ejb-ref-type>
<home>com.catenic.anafee.server.manager.rolemapping.tree.CaTreeRole2IFMappingServiceHome</home>
<remote>com.catenic.anafee.server.manager.rolemapping.tree.CaTreeRole2IFMappingService</remote>
<ejb-link>CaTreeRole2IFMappingServiceBean</ejb-link>
</ejb-ref>
<ejb-ref>
<ejb-ref-name>ejb/CaRoleInfoManager</ejb-ref-name>
<ejb-ref-type>Session</ejb-ref-type>
<home>com.catenic.anafee.server.metadata.CaRoleInfoManagerHome</home>
<remote>com.catenic.anafee.server.metadata.CaRoleInfoManager</remote>
<ejb-link>CaRoleInfoManagerBean</ejb-link>
</ejb-ref>
<ejb-ref>
<ejb-ref-name>ejb/CaNestedTreeManager</ejb-ref-name>
<ejb-ref-type>Session</ejb-ref-type>
<home>com.catenic.anafee.server.manager.tree.CaNestedTreeManagerHome</home>
<remote>com.catenic.anafee.server.manager.tree.CaNestedTreeManager</remote>
<ejb-link>CaNestedTreeManagerBean</ejb-link>
</ejb-ref>
</session>
-
Do you have any idea why the lookup fails? (I don't have any special JNDI mappings
defined in the ejb-j2ee-engine.xml, if this could matter.)
Regards,
Matthias