Just a sidenote, maybe it's your problem. From page 377 of Enterprise
JavaBeans, 2nd Edition (Oreilly):

"The ejb-link value must match one of the ejb-name values declared in the same
deployment descriptor."

That is, it's only valid if you're using an ejb-jar.xml to define multiple
beans.

Jeff Hubbach.

Alex Paransky wrote:

> I have a client application which has META-INF with the following
> application-client.xml definition:
>
> <application-client>
>   <ejb-ref>
>     <ejb-ref-name>ejb/id</ejb-ref-name>
>     <ejb-ref-type>Session</ejb-ref-type>
>     <home>com.indnet.model.id.IdSessionHome</home>
>     <remote>com.indnet.model.id.IdSession</remote>
>     <ejb-link>Id</ejb-link>
>   </ejb-ref>
> </application-client>
>
> In the client, I attempt to do the following:
>
> new InitialContext().lookup("ejb/id");
>
> The above fails with the naming exception, telling me that ejb/id cannot be
> found:
>
> Exception in thread "main" javax.naming.NameNotFoundException: ejb/id not
> found
>         at com.evermind.server.rmi.RMIContext.lookup(JAX)
>         at com.evermind.naming.jz.lookup(JAX)
>         at javax.naming.InitialContext.lookup(InitialContext.java:350)
>         at com.indnet.model.id.test.Client.main(Client.java:16)
>
> If I change my client line to read:
>
> new InitialContext().lookup("Id");
>
> Things work correctly.  "Id" is the <ejb-name> used for my object:
>
> <enterprise-beans>
>     <session>
>       <ejb-name>Id</ejb-name>
>       <home>com.indnet.model.id.IdSessionHome</home>
>       <remote>com.indnet.model.id.IdSession</remote>
>       <ejb-class>com.indnet.model.id.IdSessionBean</ejb-class>
>       <session-type>Stateless</session-type>
>         ...
>
> What is the purpose of application-client.xml if I cannot create references
> and use the name specified in <ejb-ref-name> to lookup the components?  Or
> am I missing something?
>
> Thanks.
> -AP_

--
Jeff Hubbach
Internet Developer
New Media Designs, Inc.
www.nmd.com




Reply via email to