Unable to override JNDI name for session bean
keigwin Aug 27, 2009 6:38 PMI'm using JBossAS 5.1.0 and have just upgraded the Eclipse projects for an existing application to support EJB3. I then converted one of the session beans in the app to an EJB3-style declaration. I've been able to successfully call this bean if I use JBoss' default JNDI name for the bean.
Now I need to override the JNDI name and have had no luck doing this. The mappedName attribute in the @Stateless annotation seems to have no effect on the name the bean is bound to. For example, with the bean declared this way:
@Stateless(mappedName="com.sellcore.service.GeographyService") public class GeographyService implements GeographyServiceLocal {
the JBoss management console shows it is still bound to the default name:
+- UnitTestsEAR (class: org.jnp.interfaces.NamingContext) | +- GeographyService (class: org.jnp.interfaces.NamingContext) | | +- local-com.sellcore.facade.common.GeographyServiceLocal (class: Proxy for: com.sellcore.facade.common.GeographyServiceLocal) | | +- local (class: Proxy for: com.sellcore.facade.common.GeographyServiceLocal)
where UnitTestsEAR is the EAR containing the bean and its client WAR.
The appserver logs show that the new name is found by JBoss:
15:12:13,249 INFO [JBossASKernel] Added bean(jboss.j2ee:ear=UnitTestsEAR.ear,jar=SellCoreService.jar,name=PrintApplication,service=EJB3) to KernelDeployment of: SellCoreService.jar 15:12:13,249 INFO [JBossASKernel] installing bean: jboss.j2ee:ear=UnitTestsEAR.ear,jar=SellCoreService.jar,name=GeographyService,service=EJB3 15:12:13,249 INFO [JBossASKernel] with dependencies: 15:12:13,249 INFO [JBossASKernel] and demands: 15:12:13,249 INFO [JBossASKernel] jboss.ejb:service=EJBTimerService 15:12:13,249 INFO [JBossASKernel] and supplies: 15:12:13,249 INFO [JBossASKernel] jndi:UnitTestsEAR/GeographyService/local-com.sellcore.facade.common.GeographyServiceLocal 15:12:13,249 INFO [JBossASKernel] jndi:UnitTestsEAR/GeographyService/local 15:12:13,249 INFO [JBossASKernel] jndi:com.sellcore.service.GeographyService 15:12:13,249 INFO [JBossASKernel] Class:com.sellcore.facade.common.GeographyServiceLocal
But the value I specified as the mappedName is not used at binding time, as shown later in the log:
15:12:13,937 INFO [SessionSpecContainer] Starting jboss.j2ee:ear=UnitTestsEAR.ear,jar=SellCoreService.jar,name=GeographyService,service=EJB3 15:12:13,937 INFO [EJBContainer] STARTED EJB: com.sellcore.service.common.GeographyService ejbName: GeographyService 15:12:13,952 INFO [JndiSessionRegistrarBase] Binding the following Entries in Global JNDI: UnitTestsEAR/GeographyService/local - EJB3.x Default Local Business Interface UnitTestsEAR/GeographyService/local-com.sellcore.facade.common.GeographyServiceLocal - EJB3.x Local Business Interface
I know I'm probably doing something really ignorant, but I can't figure out what. I'd really appreciate any assistance!
Thanks,
K-