We migrated from Jboss EAP 5
to EAP 6 in our development environment.
I now see the following in my JBOSS
logs. I am trying to understand how this binding happens. I have read JBOSS docs
on JNDI namespace binding. Still I am not totally clear how it works. Here is my log.
java:global/customerCare/services/UserDaoImpl!com.example.services.UserDao
java:app/services/UserDaoImpl!com.example.services.UserDao
java:module/UserDaoImpl!com.services.UserDao
java:global/customerCare/services/UserDaoImpl
java:app/services/UserDaoImpl
java:module/UserDaoImpl
Here are my EJBs
@Local
public interface UserDao {
public static final String JNDI_NAME = "java:global/customCare/services/UserDaoImpl";
//interface methods here
}
@Stateless
public class UserDaoImpl implements UserDao {
// implement methods
}
My doubts are:
I explicitly had
JNDI binding
to bejava:global/customCare/services/UserDaoImpl
in myUserDao
interface. Then why do I see I binding for others such asapp
andmodule
.what is the difference between
app
andmodule
? when would binding to these components be needed? some example here to illustrate will be very helpfulThe last three lines of log show binding to
UserDaoImpl
. Is it something that JBoss does without I ask it to bind? ( I set onlyUserDao
but notUserDaoImpl
for JNDI binding).
I am a bit illiterate on JNDI Namespace
binding. Reading docs helped me but not to great extent.
Thanks