[seam-commits] Seam SVN: r10167 - trunk/doc/Seam_Reference_Guide/en-US.
seam-commits at lists.jboss.org
seam-commits at lists.jboss.org
Sun Mar 15 23:38:48 EDT 2009
Author: dan.j.allen
Date: 2009-03-15 23:38:48 -0400 (Sun, 15 Mar 2009)
New Revision: 10167
Modified:
trunk/doc/Seam_Reference_Guide/en-US/Configuration.xml
Log:
update explaination of EJB references to reflect that all versions of JBoss handle this automatically
Modified: trunk/doc/Seam_Reference_Guide/en-US/Configuration.xml
===================================================================
--- trunk/doc/Seam_Reference_Guide/en-US/Configuration.xml 2009-03-15 22:33:05 UTC (rev 10166)
+++ trunk/doc/Seam_Reference_Guide/en-US/Configuration.xml 2009-03-16 03:38:48 UTC (rev 10167)
@@ -494,13 +494,13 @@
of finding it in JNDI according to the JNDI pattern (or <literal>@JndiName</literal> annotation).
</para>
- <para> So what about the rest of the application servers? Well, according to the Java EE spec, which most
+ <para>So what about the rest of the application servers? Well, according to the Java EE spec, which most
vendors try to adhere to religiously, you have to declare an EJB reference for your EJB in order for it
to be assigned a JNDI name. That requires some XML. It also means that it is up to you to establish a
JNDI naming convention so that you can leverage the Seam JNDI pattern. You might find the JBoss
convention a good one to follow.</para>
- <para> There are two places you have to define the EJB reference when using Seam on non-JBoss application
+ <para>There are two places you have to define the EJB reference when using Seam on non-JBoss application
servers. If you are going to be looking up the Seam EJB component through JSF (in a JSF view or as a JSF
action listener) or a Seam JavaBean component, then you must declare the EJB reference in web.xml. Here
is the EJB reference for the example component just shown: </para>
@@ -512,18 +512,24 @@
</ejb-local-ref>
]]></programlisting>
- <para> This reference will cover most uses of the component in a Seam application. However, if you want to
+ <para>This reference will cover most uses of the component in a Seam application. However, if you want to
be able to inject a Seam EJB component into another Seam EJB component using <literal>@In</literal>, you
need to define this EJB reference in another location. This time, it must be defined in ejb-jar.xml, and
it's a bit tricker. </para>
- <para> Within the context of an EJB method call, you have to deal with a somewhat sheltered JNDI context.
+ <para>Within the context of an EJB method call, you have to deal with a somewhat sheltered JNDI context.
When Seam attempts to find another Seam EJB component to satisfy an injection point defined using
- <literal>@In</literal>, it isn't going to be successful looking up the component in JNDI. You cannot
- simply resolve JNDI names as you please. You have to define those references explicitly. Unlike with the
- web context, however, you cannot declare EJB references globally for all EJB components. Instead, you
- have to specify the JNDI resources for a given EJB component one-by-one (this only applies to
- non-JBoss application servers of course!).</para>
+ <literal>@In</literal>, whether or not it finds it depends on whether an EJB reference exists in
+ JNDI. Strictly speaking, you cannot simply resolve JNDI names as you please. You have to define
+ the references explicitly. Fortunately, JBoss recognized how aggrevating this would be for the
+ developer and all versions of JBoss automatically register EJBs so they are always available in
+ JNDI, both to the web container and the EJB container. So if you are using JBoss, you can skip the next
+ few paragraphs. However, if you are deploying to GlassFish, pay close attention.</para>
+
+ <para>For application servers that stubbornly adhere to the EJB specification, EJB references must always be
+ defined explicitly. But unlike with the web context, where a single resource reference covers all
+ uses of the EJB from the web environment, you cannot declare EJB references globally in the EJB container.
+ Instead, you have to specify the JNDI resources for a given EJB component one-by-one.</para>
<para> Let's assume that we have an EJB named RegisterAction (the name is resolved using the three steps
mentioned previously). That EJB has the following Seam injection:</para>
More information about the seam-commits
mailing list