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:
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?
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.
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