Précédent   Forum des professionnels en informatique > Java > Général Java > Spring
Spring Forum d'entraide pour le framework Spring. Avant de poster -> FAQ Spring
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/01/2012, 11h00   #1
Invité régulier
 
Inscription : avril 2007
Messages : 8
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 8
Points : 8
Points : 8
Par défaut Spring application ne finit jamais

Bonjour,

J'ai un petit soucis avec une application java. Elle utilise spring pour initialiser simplement une liste de tests a executer sur des cartes. L'execution se passe bien mais l'application ne se termine jamais ...

Le fichier app-ctx-board-tests.xml definit une liste de tests a executer:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
 
	<!-- All the tests we have -->
	<bean id="dummyBoardTest" class="tests.DummyBoardTest" />
 
 
	<bean id="testRegistry" class="impl.TestRegistryImpl">
		<property name="boardTests">
			<list>
				<ref bean="dummyBoardTest" />
			</list>
		</property>
	</bean>
 
	<bean id="testRunner" class="impl.TestRunnerImpl">
		<property name="testRegistry" ref="testRegistry" />
	</bean>
</beans>
Le main recupere le bean, execute les tests pour chaque carte et
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class SmpAppCtxTest {
    public static void main(String[] args) {
 
        AbstractApplicationContext ctx = new ClassPathXmlApplicationContext("classpath:<...>/app-ctx-board-tests.xml");
 
        TestRunner runner = (TestRunner) ctx.getBean("testRunner");  
        TestReport report = new TestReport();
        //ctx.registerShutdownHook();
 
        /* Ajoute des cartes et execute les routines dessus */
 
        ctx.close();        
    }
 
 
}
Jusque la tout va bien (enfin je crois...). A l'execution, le thread main est bien termine, tous mes objets sont bien finalises. Par contre, on voit bien que 3 threads restent actifs. Voici une copie de la pile:
Code :
1
2
3
4
tests.SmpAppCtxTest at localhost:55013	
	Daemon Thread [AWT-Windows] (Running)	
	Thread [Timer-0] (Running)	
	Thread [DestroyJavaVM] (Running)
Le thread Timer-0 est demarre lorsque le ClassPathXmlApplicationContext est instancie, et c'est le thread qui pose probleme en empechant l'application de se terminer.

Savez-vous comment terminer l'application correctement? (exit est hors de question)

Merci
Jc
jcc416 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2012, 16h39   #2
Membre confirmé
 
Avatar de aymen83
 
Inscription : décembre 2007
Messages : 272
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 272
Points : 219
Points : 219
la derniére instruction de ton code doit être

Code :
1
2
3
4
5
 
//le new est juste pour exemple, tu avoir déjà instancié un context
//tu devra alors juste enregistrer le shutdownHook
ClassPathXmlApplicationContext c = new ClassPathXmlApplicationContext();
    	c.registerShutdownHook();
aymen83 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2012, 23h55   #3
Modérateur
 
Avatar de tchize_
 
Homme
Responsable de service informatique
Inscription : avril 2007
Messages : 16 197
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 32
Localisation : Belgique

Informations professionnelles :
Activité : Responsable de service informatique
Secteur : Service public

Informations forums :
Inscription : avril 2007
Messages : 16 197
Points : 25 343
Points : 25 343
Envoyer un message via MSN à tchize_ Envoyer un message via Skype™ à tchize_
Es-tu sur que ce n'est pas un de tes tests qui démarre le timer??
__________________
⥀⥁ Чиз faq java, cours java, javadoc. Pensez à et
"Votre génitrice tute des pédoncules au pandémonium" (le conjurateur, 1973)
tchize_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2012, 17h32   #4
Invité régulier
 
Inscription : avril 2007
Messages : 8
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 8
Points : 8
Points : 8
Bien vu vous 2. Le registerShutdownHook ne m'a malheureusement pas aide.

Ce n'etait pas exactement un de mes tests mais un effet de bord avec une library que j'importais et dont j'ai reussi a me passer.

Merci! Probleme resolu.
jcc416 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h28.


 
 
 
 
Partenaires

Hébergement Web