You are not necessarily wrong in your interpretation of the EJB spec, but
you might be in your interpretation of the JNDI spec.
Whenever a JNDI name is prefixed with a string followed by a colon, as in
"java:," the JNDI manager then tries to find a special naming context
factory associated with that name. The JNDI specification does NOT allow
for names of this type to not be "interpreted in any way." It should and
does matter that the name looks like a JNDI URL...it IS a JNDI URL!!! The
jBoss naming server IS a JNDI provider, and is constrained by the way JNDI
works.
Even when looking up an ejb from outside the EJB container, you are still
using JNDI. And the J2EE spec does not require "application clients" as
they are called, to have any access to the "java:" namespace from JNDI.
I hope this clears things up. From looking at your email below, it looks as
if you think that external clients are NOT using JNDI to look up beans, when
they are. And the J2EE spec dictates that the "java:" namespace only needs
to be valid from within the server itself.
Again, some servers may do this anyway, like WebLogic. However, understand
that this is something they provide ON TOP of the spec. Coding clients that
assume that these services are present makes them non-portable.
-Charles
Kevin Lewis wrote:
> Thanks for the reply, Chris. My client is currently a Servlet, but I
> will need to use a simple ejb client, as well.
>
> I think that when you give a bean a name for use from outside the ejb
> container, you should be able to use whatever name you like; the name
> shouldn't be interpreted in any way.
>
> In my case, it shouldn't matter (I think) that the name happens to look
> like a JNDI URL. The naming server for jBoss (to external clients)
> should just store that name as-is.
>
> Am I wrong in my interpretation of the EJB spec, here? I would
> appreciate a correction of my understanding if I am.
>
> I really appreciate the rapid responses to my questions.
>
> -----Original Message-----
> From: Chris Audley [mailto:[EMAIL PROTECTED]]
> Sent: Friday, September 29, 2000 11:42 AM
> To: 'jBoss'
> Subject: RE: [jBoss-User] JNDI Name java:comp/env/ejb/something
>
> It would help here if you specified what your client is ( another EJB, a
> servlet, some other program ). The "java:" name will work from another
> EJB
> in jBoss as long as you set up the ejb reference in the ejb-jar.xml. If
> your client is a servlet, in a full J2EE implementation where the
> servlet
> container is integrated with the EJB container *and* the application is
> deployed as an EAR file, then you can use a "java:" name from the
> servlet
> context as long as it is configured in the application deployment. In
> jBoss, the servlet container -- Tomcat -- is not ( yet ) integrated to
> that
> degree. I'm not even sure if or when that is planned.
>
> Hope this helps
>
> Chris
>
> -----Original Message-----
> From: Kevin Lewis [mailto:[EMAIL PROTECTED]]
> Sent: Friday, September 29, 2000 11:48 AM
> To: jBoss
> Subject: RE: [jBoss-User] JNDI Name java:comp/env/ejb/something
>
> Thanks for the reply, Charles. The problem is that some existing code
> I'm deploying use names like this (for ease of development, I suppose).
> Because these examples work in things like the J2EE RI, WebLogic, etc.,
> I was thinking that they should work in jBoss.
>
> Are you saying that names like that won't work?
>
> Thanks for your time.
>
> -----Original Message-----
> From: Charles Crain [mailto:[EMAIL PROTECTED]]
> Sent: Friday, September 29, 2000 9:35 AM
> To: jBoss
> Subject: Re: [jBoss-User] JNDI Name java:comp/env/ejb/something
>
> Yeah, don't do that...
> The "java:" namespace is "reserved" in some sense. It is used to look
> up
> things like environment properties and UserTransactions. When binding
> an
> EJB to a name, do not use java:. Look at some of the examples to see
> the
> names they are bound to. For instance, the cd bean home interface gets
> a
> name like "cd/CDHome" or something.
>
> -Charles
>
> Kevin Lewis wrote:
>
> > Hi, everyone.
> >
> > I have a bean that I am deploying. I am giving it a JNDI name of the
> > form:
> >
> > java:comp/env/ejb/name
> >
> > However, when my client tries to lookup the name, RMI (I'm assuming)
> > returns:
> >
> > javax.naming.NameNotFoundException: comp not bound
> > at
> > sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(Unknown
> > Source)
> > at sun.rmi.transport.StreamRemoteCall.executeCall(Unknown
> > Source)
> > at sun.rmi.server.UnicastRef.invoke(Unknown Source)
> > at org.jnp.server.NamingServer_Stub.lookup(Unknown Source)
> > at
> > org.jnp.interfaces.NamingContext.lookup(NamingContext.java:280)
> > at
> > org.jnp.interfaces.NamingContext.lookup(NamingContext.java:265)
> > at javax.naming.InitialContext.lookup(Unknown Source)
> > .....
> >
> > If I give the bean a simple name (like "name") my client can look it
> up
> > just fine.
> >
> > Is this a problem with how I'm deploying the bean, with RMI, or with
> > jBoss?
> >
> > Thanks for any help.
> >
> > --
> > Kevin Lewis
> > Middle Reliever
> > Axys Solutions
> > http://www.AxysSolutions.com/
> >
> > --
> > --------------------------------------------------------------
> > To subscribe: [EMAIL PROTECTED]
> > To unsubscribe: [EMAIL PROTECTED]
> > Problems?: [EMAIL PROTECTED]
>
> --
> --------------------------------------------------------------
> To subscribe: [EMAIL PROTECTED]
> To unsubscribe: [EMAIL PROTECTED]
> Problems?: [EMAIL PROTECTED]
>
> --
> --------------------------------------------------------------
> To subscribe: [EMAIL PROTECTED]
> To unsubscribe: [EMAIL PROTECTED]
> Problems?: [EMAIL PROTECTED]
>
> --
> --------------------------------------------------------------
> To subscribe: [EMAIL PROTECTED]
> To unsubscribe: [EMAIL PROTECTED]
> Problems?: [EMAIL PROTECTED]
>
> --
> --------------------------------------------------------------
> To subscribe: [EMAIL PROTECTED]
> To unsubscribe: [EMAIL PROTECTED]
> Problems?: [EMAIL PROTECTED]
--
--------------------------------------------------------------
To subscribe: [EMAIL PROTECTED]
To unsubscribe: [EMAIL PROTECTED]
Problems?: [EMAIL PROTECTED]