IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Servlets/JSP Java Discussion :

Deux Listener dans une application


Sujet :

Servlets/JSP Java

  1. #1
    Membre éclairé
    Homme Profil pro
    Ingénieur Informatique et Réseaux
    Inscrit en
    Avril 2011
    Messages
    232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Informatique et Réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 232
    Par défaut Deux Listener dans une application
    Bonjour,

    J'utilise dans mon application web le framework Spring.

    j'ai donc dans mon fichier web.xml:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <listener>
            <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    mais j'aimerai lancer une tache au démarrage de mon application, donc je voulais faire un listener ("ListenerServlet" est une classe que j'ai créé moi même):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
        <listener>
            <listener-class>servlet.ListenerServlet</listener-class>
        </listener>
    Mais l'application de fonctionne plus après, d’où ma question:

    Peut-on utiliser deux listener dans une application web?
    si oui, comment faire?
    si non, existe-t-il un autre moyen pour lancer ma tache au démarrage de mon application.


    Merci d'avance

  2. #2
    Membre Expert
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 414
    Par défaut
    Bonjour,

    Tu peux déclarer deux listeners dans ton fichier web.xml.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <listener>
            <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    <listener>
            <listener-class>servlet.ListenerServlet</listener-class>
    </listener>

  3. #3
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Ou jouer sur l'héritage et faire une servlet qui étend org.springframework.web.context.ContextLoaderListener
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Membre éclairé
    Homme Profil pro
    Ingénieur Informatique et Réseaux
    Inscrit en
    Avril 2011
    Messages
    232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Informatique et Réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 232
    Par défaut
    Merci de vos réponses

    En mettant les 2 listener, j'ai une erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Erreur lors du déploiement*: Exception while loading the app : java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource [applicationContext.xml]; nested exception is java.io.FileNotFoundException: class path resource [applicationContext.xml] cannot be opened because it does not exist.
    J'ai aussi essayé avec l'héritage, ce qui me donne pour mon Listener:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
    public class ListenerServlet extends ContextLoaderListener  implements ServletContextListener {
     
        Timer timer1;
        EmailTask emailTask;
     
        /** Cette méthode appelée lors du démarrage de l'application
         * @param sce ServletContextEvent
         */
        @Override
        public void contextInitialized(ServletContextEvent sce) {
            timer1 = new Timer();
            emailTask = new EmailTask();
            Date today = new Date();
     
            Calendar cal = new GregorianCalendar();
            cal.setTime(today);
            cal.setFirstDayOfWeek(Calendar.SUNDAY);
            cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH), cal.get(Calendar.DAY_OF_MONTH), 9, 30, 0);
     
            while (cal.get(Calendar.DAY_OF_WEEK) != 4 || cal.get(Calendar.HOUR_OF_DAY) >= 9) {
                cal.add(Calendar.DATE, 1);
            }
     
            System.out.println("LANCEMENT DE LA TACHE");
            System.out.println("Date de la première éxécution : " + new SimpleDateFormat("EEEE dd MMMM yyyy HH:mm:ss").format(cal.getTime()));
            timer1.scheduleAtFixedRate(emailTask, cal.getTime(), 7 * 24 * 3600 * 1000);
        }
     
        /** Cette méthode appelée lors de l'arret de l'application
         * @param sce ServletContextEvent
         */
        @Override
        public void contextDestroyed(ServletContextEvent sce) {
            System.out.println("ARRET DE LA TACHE");
            timer1.cancel();
        }
    }
    Là aussi j'ai la même erreur.


    Je ne comprends pas parce que le fichier xml "applicationContext" existe bien avec le premier listener.

    Merci

  5. #5
    Membre éclairé
    Homme Profil pro
    Ingénieur Informatique et Réseaux
    Inscrit en
    Avril 2011
    Messages
    232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Informatique et Réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 232
    Par défaut
    J'ai vu que les methodes "contextInitialized(ServletContextEvent sce)" et "contextDestroyed(ServletContextEvent sce)" étaient déjà dans la classe "ContextLoaderListener" donc pas besoin d'implémenter la classe.

    Mais j'ai toujours la même erreur.


    Merci de votre aide.

  6. #6
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    oubli l'héritage , ca n'a pas de sesnss dans ce cas si. Ton message d'erreur viens de spring, il te dit que le context ne peux pas démarrer car il manque applicaitonContext.xml, ca n'a rien à voir avec le fait que tu aie défini deux listeners ça

  7. #7
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Si tu utilises l'héritage, il ne faut pas oublier de faire un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    super.contextInitialized(ServletContextEvent sce);
    Pour l'erreur, effectivement, il ne trouve pas le fichier xml.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  8. #8
    Membre éclairé
    Homme Profil pro
    Ingénieur Informatique et Réseaux
    Inscrit en
    Avril 2011
    Messages
    232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Informatique et Réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 232
    Par défaut
    Merci j'ai réglé le problème du "applicationContext.xml" mais maintenant j’obtiens une erreur dans 2 cas:

    1) je met seulement un listener:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
        <listener>
            <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
        </listener>
    Voila l'erreur mais l'application se déploie quand même:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
     
    INFO: PWC1412: WebModule[null] ServletContext.log():Closing Spring root WebApplicationContext
    INFO: Closing Root WebApplicationContext: startup date [Tue Jun 14 16:21:48 CEST 2011]; root of context hierarchy
    INFO: Destroying singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@1df65c8: defining beans [agentDao,agentService,serviceDao,serviceService,communeDao,communeService,recapitulatifDao,recapitulatifService,quotaDao,quotaService,sessionDao,sessionService,logicielDao,logicielService,specialiteDao,specialiteService,salleDao,salleService,userDao,userService,entiteDao,entiteService,zimbraDao,zimbraService,fontDao,fontService]; root of factory hierarchy
    ATTENTION: Illegal character in path at index 18: file:/D:/Documents and Settings/moi/Mes documents/NetBeansProjects/FormationApp/build/web/WEB-INF/lib/cglib-2.2.jar
    java.net.URISyntaxException: Illegal character in path at index 18: file:/D:/Documents and Settings/moi/Mes documents/NetBeansProjects/FormationApp/build/web/WEB-INF/lib/cglib-2.2.jar
    	at java.net.URI$Parser.fail(URI.java:2809)
    	at java.net.URI$Parser.checkChars(URI.java:2982)
    	at java.net.URI$Parser.parseHierarchical(URI.java:3066)
    	at java.net.URI$Parser.parse(URI.java:3014)
    	at java.net.URI.<init>(URI.java:578)
    	at java.net.URL.toURI(URL.java:918)
    	at com.sun.enterprise.v3.server.SnifferManagerImpl.getURIs(SnifferManagerImpl.java:268)
    	at com.sun.enterprise.v3.server.SnifferManagerImpl.getApplicableSniffers(SnifferManagerImpl.java:202)
    	at com.sun.enterprise.v3.server.SnifferManagerImpl.getSniffers(SnifferManagerImpl.java:150)
    	at com.sun.enterprise.v3.server.ApplicationLifecycle.setupContainerInfos(ApplicationLifecycle.java:604)
    	at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:368)
    	at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:240)
    	at org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:370)
    	at com.sun.enterprise.v3.admin.CommandRunnerImpl$1.execute(CommandRunnerImpl.java:360)
    	at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:370)
    	at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1067)
    	at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1200(CommandRunnerImpl.java:96)
    	at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1247)
    	at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1235)
    	at org.glassfish.deployment.admin.ReDeployCommand.execute(ReDeployCommand.java:126)
    	at com.sun.enterprise.v3.admin.CommandRunnerImpl$1.execute(CommandRunnerImpl.java:355)
    	at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:370)
    	at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1067)
    	at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1200(CommandRunnerImpl.java:96)
    	at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1247)
    	at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1235)
    	at com.sun.enterprise.v3.admin.AdminAdapter.doCommand(AdminAdapter.java:465)
    	at com.sun.enterprise.v3.admin.AdminAdapter.service(AdminAdapter.java:222)
    	at com.sun.grizzly.tcp.http11.GrizzlyAdapter.service(GrizzlyAdapter.java:168)
    	at com.sun.enterprise.v3.server.HK2Dispatcher.dispath(HK2Dispatcher.java:117)
    	at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:234)
    	at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:822)
    	at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:719)
    	at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1013)
    	at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:225)
    	at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
    	at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
    	at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
    	at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
    	at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
    	at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
    	at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
    	at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
    	at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
    	at java.lang.Thread.run(Thread.java:662)
     
    INFO: PWC1412: WebModule[null] ServletContext.log():Initializing Spring root WebApplicationContext
    INFO: Root WebApplicationContext: initialization started
    INFO: Refreshing Root WebApplicationContext: startup date [Tue Jun 14 16:22:20 CEST 2011]; root of context hierarchy
    INFO: Loading XML bean definitions from ServletContext resource [/WEB-INF/classes/applicationContext.xml]
    INFO: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@1751444: defining beans [agentDao,agentService,serviceDao,serviceService,communeDao,communeService,recapitulatifDao,recapitulatifService,quotaDao,quotaService,sessionDao,sessionService,logicielDao,logicielService,specialiteDao,specialiteService,salleDao,salleService,userDao,userService,entiteDao,entiteService,zimbraDao,zimbraService,fontDao,fontService]; root of factory hierarchy
    INFO: Root WebApplicationContext: initialization completed in 1344 ms
    INFO: WEB0671: Loading application [FormationApp] at [/formation]
    INFO: FormationApp a été déployé en 4*547 ms.
    2) je mets les 2 Listener:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
        <listener>
            <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
        </listener>
        <listener>
            <listener-class>servlet.ListenerServlet</listener-class>
        </listener>
    Voila l'erreur et l'application se bloque au niveau de la dernier ligne (elle tourne toujours):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
     
    INFO: PWC1412: WebModule[null] ServletContext.log():Closing Spring root WebApplicationContext
    INFO: Closing Root WebApplicationContext: startup date [Tue Jun 14 16:22:20 CEST 2011]; root of context hierarchy
    INFO: Destroying singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@1751444: defining beans [agentDao,agentService,serviceDao,serviceService,communeDao,communeService,recapitulatifDao,recapitulatifService,quotaDao,quotaService,sessionDao,sessionService,logicielDao,logicielService,specialiteDao,specialiteService,salleDao,salleService,userDao,userService,entiteDao,entiteService,zimbraDao,zimbraService,fontDao,fontService]; root of factory hierarchy
    ATTENTION: Illegal character in path at index 18: file:/D:/Documents and Settings/moi/Mes documents/NetBeansProjects/FormationApp/build/web/WEB-INF/lib/cglib-2.2.jar
    java.net.URISyntaxException: Illegal character in path at index 18: file:/D:/Documents and Settings/moi/Mes documents/NetBeansProjects/FormationApp/build/web/WEB-INF/lib/cglib-2.2.jar
    	at java.net.URI$Parser.fail(URI.java:2809)
    	at java.net.URI$Parser.checkChars(URI.java:2982)
    	at java.net.URI$Parser.parseHierarchical(URI.java:3066)
    	at java.net.URI$Parser.parse(URI.java:3014)
    	at java.net.URI.<init>(URI.java:578)
    	at java.net.URL.toURI(URL.java:918)
    	at com.sun.enterprise.v3.server.SnifferManagerImpl.getURIs(SnifferManagerImpl.java:268)
    	at com.sun.enterprise.v3.server.SnifferManagerImpl.getApplicableSniffers(SnifferManagerImpl.java:202)
    	at com.sun.enterprise.v3.server.SnifferManagerImpl.getSniffers(SnifferManagerImpl.java:150)
    	at com.sun.enterprise.v3.server.ApplicationLifecycle.setupContainerInfos(ApplicationLifecycle.java:604)
    	at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:368)
    	at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:240)
    	at org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:370)
    	at com.sun.enterprise.v3.admin.CommandRunnerImpl$1.execute(CommandRunnerImpl.java:360)
    	at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:370)
    	at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1067)
    	at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1200(CommandRunnerImpl.java:96)
    	at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1247)
    	at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1235)
    	at org.glassfish.deployment.admin.ReDeployCommand.execute(ReDeployCommand.java:126)
    	at com.sun.enterprise.v3.admin.CommandRunnerImpl$1.execute(CommandRunnerImpl.java:355)
    	at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:370)
    	at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1067)
    	at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1200(CommandRunnerImpl.java:96)
    	at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1247)
    	at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1235)
    	at com.sun.enterprise.v3.admin.AdminAdapter.doCommand(AdminAdapter.java:465)
    	at com.sun.enterprise.v3.admin.AdminAdapter.service(AdminAdapter.java:222)
    	at com.sun.grizzly.tcp.http11.GrizzlyAdapter.service(GrizzlyAdapter.java:168)
    	at com.sun.enterprise.v3.server.HK2Dispatcher.dispath(HK2Dispatcher.java:117)
    	at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:234)
    	at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:822)
    	at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:719)
    	at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1013)
    	at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:225)
    	at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
    	at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
    	at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
    	at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
    	at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
    	at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
    	at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
    	at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
    	at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
    	at java.lang.Thread.run(Thread.java:662)
     
    INFO: PWC1412: WebModule[null] ServletContext.log():Initializing Spring root WebApplicationContext
    INFO: Root WebApplicationContext: initialization started
    INFO: Refreshing Root WebApplicationContext: startup date [Tue Jun 14 16:23:18 CEST 2011]; root of context hierarchy
    INFO: Loading XML bean definitions from ServletContext resource [/WEB-INF/classes/applicationContext.xml]
    INFO: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@ac8cbe: defining beans [agentDao,agentService,serviceDao,serviceService,communeDao,communeService,recapitulatifDao,recapitulatifService,quotaDao,quotaService,sessionDao,sessionService,logicielDao,logicielService,specialiteDao,specialiteService,salleDao,salleService,userDao,userService,entiteDao,entiteService,zimbraDao,zimbraService,fontDao,fontService]; root of factory hierarchy
    INFO: Root WebApplicationContext: initialization completed in 922 ms
    INFO: Loading XML bean definitions from class path resource [applicationContext.xml]
    Les dernieres lignes ne sont pas les mêmes, je ne comprends pas pourquoi l'application veux recharger le fichier xml.
    Et si vous savez d'où vient l'erreur "Illegal character in path" cela m'aiderai.


    Merci beaucoup

  9. #9
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    C'est le blanc dans le nom long qui pose problème.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  10. #10
    Membre éclairé
    Homme Profil pro
    Ingénieur Informatique et Réseaux
    Inscrit en
    Avril 2011
    Messages
    232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Informatique et Réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 232
    Par défaut
    C'est à dire l'espace dans "Documents and Settings" et "Mes Documents"?

    Et pour le fait que je ne puisse pas mettre 2 listener, (sinon il recharge le fichier xml et plante), il y a une autre solution?

  11. #11
    Membre Expert
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 414
    Par défaut
    Bonjour,

    Pourquoi ton ListenerServlet étend ContextLoaderListener?

    Tu ne dois "qu'implémenter" l'interface ServletContextListener.

  12. #12
    Membre éclairé
    Homme Profil pro
    Ingénieur Informatique et Réseaux
    Inscrit en
    Avril 2011
    Messages
    232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Informatique et Réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 232
    Par défaut
    Oui c'est ce que j'avais au départ mais OButterlin m'a dit de faire hériter de ContextLoaderListener et du coup je pensais qu'il me faudrait plus qu'un seul Listener.

  13. #13
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Spiritkill Voir le message
    Oui c'est ce que j'avais au départ mais OButterlin m'a dit de faire hériter de ContextLoaderListener et du coup je pensais qu'il me faudrait plus qu'un seul Listener.
    Suggéré...

    Je pense que ça se défend dans ton cas, même si on peut faire autrement...

    Pour ce qui est des 2 listeners, dans ce cas, il ne faut pas que ton listener étende ContextLoaderListener mais bien ServletContextListener, ça me semblait évident.

    Pour les noms longs, d'où vient la valeur, d'un fichier properties ou autre fichier de paramétrage ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  14. #14
    Membre éclairé
    Homme Profil pro
    Ingénieur Informatique et Réseaux
    Inscrit en
    Avril 2011
    Messages
    232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Informatique et Réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 232
    Par défaut
    Bonjour,

    Je ne comprends pas la question, c'est le chemin d'une librairie que j'ai importé dans le dossier /lib de l'application. Je ne sais pas pourquoi il utilise le chemin absolu du jar.

    J'ai une autre erreur qui est peut être liée.
    Elle survient quand je fais un "clean" dans NetBeans après avoir lancé l'application avec 1 seul listener:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Deleting directory D:\Documents and Settings\moi\Mes documents\NetBeansProjects\Formation\build
    D:\Documents and Settings\moi\Mes documents\NetBeansProjects\Formation\nbproject\build-impl.xml:1085: Unable to delete file D:\Documents and Settings\moi\Mes documents\NetBeansProjects\Formation\build\web\WEB-INF\lib\cglib-2.2.jar
    BUILD FAILED (total time: 12 seconds)

  15. #15
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Sous windows, vérifiez que tous vos process java.Exe sont bien arrêté. Si un process java tourne encore en utilisant ce jar, il est verrouillé et donc impossible à supprimer sur cette saleté d'OS

  16. #16
    Membre éclairé
    Homme Profil pro
    Ingénieur Informatique et Réseaux
    Inscrit en
    Avril 2011
    Messages
    232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Informatique et Réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 232
    Par défaut
    Quand je lance mon application, 2 processus "java.exe" (memoire utilisée: 230Mo et l'autre 25Mo) se lance.

    J'arrête le plus petit:
    L'application peut toujours se lancer mais la lib est toujours utilisée.

    J'arrête la plus gros (en gardant le plus petit):
    L'application ne démarre plus mais la lib n'est plus utilisée.
    Par contre si après le "clean" je relance l'application, le processus de 230Mo démarre.

    Est-ce un comportement normal?

  17. #17
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    au lieu de killer violement, faites un stop de votre conteneur j2ee

  18. #18
    Membre éclairé
    Homme Profil pro
    Ingénieur Informatique et Réseaux
    Inscrit en
    Avril 2011
    Messages
    232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Informatique et Réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 232
    Par défaut
    Quand j'arrête mon conteneur, j'ai toujours un java.exe qui tourne (le plus petit) mais la lib n'est plus utilisée.
    Est ce que le fait d'avoir 2 processus "java.exe" posera problème lors de la mise en prod de mon application?

    Sinon pour mettre mon listener je dois procéder comment? Si j'en mets 2 le conteneur plante (il charge le "applicationContext.xml" mais pas du bon endroit alors que quelques lignes au dessus il le charge du bon endroit):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    INFO: Loading XML bean definitions from ServletContext resource [/WEB-INF/classes/applicationContext.xml]
    INFO: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@ac8cbe: defining beans [agentDao,agentService,serviceDao,serviceService,communeDao,communeService,recapitulatifDao,recapitulatifService,quotaDao,quotaService,sessionDao,sessionService,logicielDao,logicielService,specialiteDao,specialiteService,salleDao,salleService,userDao,userService,entiteDao,entiteService,zimbraDao,zimbraService,fontDao,fontService]; root of factory hierarchy
    INFO: Root WebApplicationContext: initialization completed in 922 ms
    INFO: Loading XML bean definitions from class path resource [applicationContext.xml]
    Pour le premier on peut voir qu'il le charge de "ServletContext" alors que pour la deuxième fois il le charge du class path.
    Pourquoi c'est 2 chargements? Un seul ne suffit pas?

  19. #19
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Citation Envoyé par Spiritkill Voir le message
    Est ce que le fait d'avoir 2 processus "java.exe" posera problème lors de la mise en prod de mon application?
    non

  20. #20
    Membre éclairé
    Homme Profil pro
    Ingénieur Informatique et Réseaux
    Inscrit en
    Avril 2011
    Messages
    232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Informatique et Réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 232
    Par défaut
    Citation Envoyé par OButterlin Voir le message
    Pour les noms longs, d'où vient la valeur, d'un fichier properties ou autre fichier de paramétrage ?
    Les noms des librairies sont dans le fichier de propriété (lib/nblibraries.properties).

    J'ai changé mon application de dossier : D:/project/Formation (sans espace) mais j'ai toujours la meme érreur et il me met le path absolu(D:/Documents and Settings/moi/Mes documents/NetBeansProjects/Formation/build/web/WEB-INF/lib/cglib-2.2.jar) et c'est celui de l'autre projet. Les librairies sont bien dans le dossier lib de l'application et dans le fichier de propriété il y a:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    libs.CopyLibs.classpath=\
        ${base}/CopyLibs/org-netbeans-modules-java-j2seproject-copylibstask.jar
    libs.javaee-endorsed-api-6.0.classpath=\
        ${base}/javaee-endorsed-api-6.0/javax.annotation.jar;\
        ${base}/javaee-endorsed-api-6.0/jaxb-api-osgi.jar;\
        ${base}/javaee-endorsed-api-6.0/webservices-api-osgi.jar
    libs.javaee-endorsed-api-6.0.javadoc=\
        ${base}/javaee-endorsed-api-6.0/javaee6-doc-api.zip
    libs.jstl11.classpath=\
        ${base}/jstl11/standard.jar;\
        ${base}/jstl11/jstl.jar
    libs.jstl11.javadoc=\
        ${base}/jstl11/javaee6-doc-api.zip
    libs.junit.classpath=\
        ${base}/junit/junit-3.8.2.jar
    libs.junit.javadoc=\
        ${base}/junit/junit-3.8.2-api.zip
    libs.junit_4.classpath=\
        ${base}/junit_4/junit-4.5.jar
    libs.junit_4.javadoc=\
        ${base}/junit_4/junit-4.5-api.zip
    libs.junit_4.src=\
        ${base}/junit_4/junit-4.5-src.jar
    libs.spring-framework300.classpath=\
        ${base}/spring-framework300/commons-logging-1.1.jar;\
        ${base}/spring-framework300/cglib-2.2.jar;\
        ${base}/spring-framework300/spring-aop-3.0.2.RELEASE.jar;\
        ${base}/spring-framework300/spring-asm-3.0.2.RELEASE.jar;\
        ${base}/spring-framework300/spring-aspects-3.0.2.RELEASE.jar;\
        ${base}/spring-framework300/spring-beans-3.0.2.RELEASE.jar;\
        ${base}/spring-framework300/spring-context-3.0.2.RELEASE.jar;\
        ${base}/spring-framework300/spring-context-support-3.0.2.RELEASE.jar;\
        ${base}/spring-framework300/spring-core-3.0.2.RELEASE.jar;\
        ${base}/spring-framework300/spring-expression-3.0.2.RELEASE.jar;\
        ${base}/spring-framework300/spring-instrument-3.0.2.RELEASE.jar;\
        ${base}/spring-framework300/spring-instrument-tomcat-3.0.2.RELEASE.jar;\
        ${base}/spring-framework300/spring-jdbc-3.0.2.RELEASE.jar;\
        ${base}/spring-framework300/spring-jms-3.0.2.RELEASE.jar;\
        ${base}/spring-framework300/spring-orm-3.0.2.RELEASE.jar;\
        ${base}/spring-framework300/spring-oxm-3.0.2.RELEASE.jar;\
        ${base}/spring-framework300/spring-test-3.0.2.RELEASE.jar;\
        ${base}/spring-framework300/spring-tx-3.0.2.RELEASE.jar;\
        ${base}/spring-framework300/spring-web-3.0.2.RELEASE.jar;\
        ${base}/spring-framework300/spring-webmvc-portlet-3.0.2.RELEASE.jar;\
        ${base}/spring-framework300/spring-webmvc-3.0.2.RELEASE.jar;\
        ${base}/spring-framework300/spring-struts-3.0.2.RELEASE.jar
    Je pense que je dois référencer la librairie de façon absolu dans mon projet mais je ne trouve pas l'endroit où changer ceci.

    Si vous avez des idées merci.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Créer deux barres de menu dans une application
    Par f6dqm1 dans le forum Composants VCL
    Réponses: 7
    Dernier message: 05/03/2015, 14h12
  2. Réponses: 8
    Dernier message: 17/03/2004, 14h40
  3. Licence MySql en tant que BD dans une application web
    Par Volta dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 26/02/2004, 14h38
  4. fenetre dos dans une application
    Par jfb53 dans le forum C++Builder
    Réponses: 3
    Dernier message: 19/10/2003, 18h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo