[Java/EJB3] JNDI-naam van sessionbean

Pagina: 1
Acties:

  • ari3
  • Registratie: Augustus 2002
  • Niet online
Ik heb een EJB3 module met o.a. een groot aantal session beans. Deze worden gedeployed in JBoss 4.0.5.GA. Hierbij loop ik tegen een probleem aan dat de JDNI-namen niet op een consistente manier gegenereerd worden.

Geobserveerd gedrag:
  • Indien ik de EJB3 module los deploy (dus niet in een ear) is een session bean te vinden op naam: FooBarBean/remote
  • Indien ik de EJB3 module opneem in een EAR module en deze deploy is dezelfde session bean te vinden op naam mijnapp-1.0-SNAPSHOT.ear/FooBarBean/remote.
Evaluatie:
Blijkbaar wordt in een EAR de JDNI-naam geprefixed met de bestandsnaam van de EAR module. Dit gedrag is ongewenst want wij hebben de goede gewoonte altijd een versienummer in de modulenaam op te nemen. Als het versienummer wijzigt zal dus ook de JNDI-naam wijzigen waardoor clients die afhankelijk zijn van de JNDI-naam breken.

Oplossing:
De JNDI-naam kan hard gezet worden middels de annotaties @RemoteBinding en @LocalBinding maar dan moet dat gedaan worden alle sessionbeans en is dus geen werkbare oplossing. Graag jullie inzichten aangaande deze problematiek. Wellicht kan het automatisch prefixen van JNDI-namen in JBoss geconfigureerd worden?

"Kill one man, and you are a murderer. Kill millions of men, and you are a conqueror. Kill them all, and you are a god." -- Jean Rostand


  • JKVA
  • Registratie: Januari 2004
  • Niet online

JKVA

Design-by-buzzword fanatic

Hmm, de EJB 3.0 spec verplicht toch dat je remotes onder de fully qualified classname in de JNDI komen?

Ps. ik heb het nog niet geprobeerd met jboss 4.0.5. Volgens de site wordt voor huidige EJB 3.0 build uitgegaan van 4.0.4. Misschien dat het verschil daar in zit.

Fat Pizza's pizza, they are big and they are cheezy