J'essaye de migrer de JPA vers JTA et d'utiliser le gestionnaire de transactions bitronix. Je reçois un message d'erreur ci-dessous lorsque j'essaie d'exécuter des tests unitaires. Selon la documentation de bitronix c'est normal b/c ma configuration de contexte de printemps essaye de charger les ressources deux fois (une fois en classe de base puis dans la classe de test, voir le code ci-dessous), j'ai essayé la même chose avec atomikos .bitronix transaction manager
Causée par: java.lang.IllegalArgumentException: ressource avec uniqueName 'xyzDb' a déjà été enregistré
Ma classe de base
@ContextConfiguration(locations = {"classpath:com/xyz/baseContext.xml"})
@Transactional
public abstract class AbstractTestSupport extends Assert implements ApplicationContextAware
{
Dans certains tests unitaires que j'ai pour étendre le support de test et ajouter un fichier de configuration de contexte comme ci-dessous. il charge contexte une fois pour la classe de base et une autre fois pour la classe des enfants et ne
classe enfant
@ContextConfiguration(locations = {"classpath:com/xyz/testContext.xml"})
public class UnitTest extends AbstractTestSupport
{
Après le test j'arrêter contexte, si prochain test fonctionne bien tant qu'il n » t étendre la classe de base avec un autre fichier de configuration de contexte.
@AfterClass
public static void onTearDownAfterClass() throws Exception
{
applicationContext.shutdownApplicationContext();
assertFalse("Spring application context is still active after shutdown. ", applicationContext.isActive());
}
Je veux conserver les fichiers de configuration de contexte dans les classes d'enfants et de faire ce travail comme ça, des idées très appréciés ....
Qu'y a-t-il dans les deux fichiers XML? – skaffman
juste une note hors-sujet: j'ai eu une mauvaise impression de bitronix tm et même quelques tests montrant qu'il fonctionne pire que le gestionnaire de transactions autonomes jboss quand il s'agit de fonctionnalités comme la suspension de transaction. –