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

Tomcat et TomEE Java Discussion :

Tomcat et instanciation dynamique


Sujet :

Tomcat et TomEE Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2009
    Messages : 54
    Points : 60
    Points
    60
    Par défaut Tomcat et instanciation dynamique
    Bonjour et merci d'avance de prendre 2 3 minutes pour me lire.

    J'utilise tomcat depuis peu avec pour objectif d'intégrer un web service.

    Mon projet est en trois phases 1 de developpement et mise au point d'un Jar
    de stockage de donnée il fonctionne très bien.
    et il charge des class via class.forName et instanciation dynamique et réflexivite.

    Seconde phase.
    Je crée un projet web dans Eclipse(Helios) Jdk 1.6 avec Axis2 mon projet va bien dans tomcat 6 dans éclipse.
    fonctionne bien affiche bien les résultats attendu dans le web services Explorer d'éclipse
    jusque là parfait.



    Mais arrivé aux méthodes qui utilisent l'instanciation dynamique et réflexivité Tomcat refuse de fonctionné

    Pour l'instant je n'utilise pas de thread c'est pour la 3ieme phase.
    voici le log de la console Eclipse
    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
     
    [ERROR] Exception occurred while trying to invoke service method setcreateObj
    org.apache.axis2.AxisFault: Exception occurred while trying to invoke service method setcreateObj
    	at org.apache.axis2.rpc.receivers.RPCMessageReceiver.invokeBusinessLogic(RPCMessageReceiver.java:158)
    	at org.apache.axis2.receivers.AbstractInOutMessageReceiver.invokeBusinessLogic(AbstractInOutMessageReceiver.java:40)
    	at org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:114)
    	at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:173)
    	at org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:167)
    	at org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:142)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
    	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
    	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
    	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
    	at java.lang.Thread.run(Thread.java:636)
    Caused by: java.lang.reflect.InvocationTargetException
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    	at java.lang.reflect.Method.invoke(Method.java:616)
    	at org.apache.axis2.rpc.receivers.RPCUtil.invokeServiceClass(RPCUtil.java:194)
    	at org.apache.axis2.rpc.receivers.RPCMessageReceiver.invokeBusinessLogic(RPCMessageReceiver.java:102)
    	... 19 more
    Caused by: java.lang.NullPointerException
    	at alphadevApi.ExternalServices.setcreateObj(ExternalServices.java:75)
    le log me parait abscon et obscure. si vous avez des pistes ?

    Voici le bean de mon webservice
    il fonctionne tres bien pour l'ouverture et la creation des structure de donnée.

    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
     
    public class MedecWs {
     
    	private ExternalServices serv = new ExternalServices();
     
    	public int getIdSession()
    	{
    		// static InitCom.profile
                    InitCom.profile = "/home/ggu/project/conf-file/" + "Desktopggu" + ".properties";
    		int idsession = serv.getIdsession();
    		return idsession;
    	}
    	public boolean closeSession(int idsession)
    	{
    		return serv.closeSession(idsession);		
    	}
     
    	public void saveDatal(String Uri, int idsession)
    	{
    		serv.saveDodel(Uri, idsession);
    	}
    	public String getQuery(String sQuery, int idsession)
    	{
    		return erv.getQuery(sQuery, idsession);
    	}
    	public String setcreateObj(String sbject, String uri, int idsession)
    	{
    		return serv.setcreateObj(sObject, uri, idsession);
    	}
    	public String setObjPropertie(String sObject, String uri, String sMethodName,String sPropertieValue, int idsession)
    	{
    		return serv.setObjPropertie(sObject, uri, sMethodName, sPropertieValue, idsession);
    	}
     
    	public int getidstring()
    	{
    		return 12345; //en dur pour test
    	}
    	public String getPopu()
    	{
    		return serv.getnsPopu();
    	}
    }

    J'ai bien vérifié mes dépendances et autres mais je me demande si l'instanciation dynamique & reflexicite dans une webapp si c'est accepté
    Je vois pas pourquoi Tomcat refuserait sela dans la webapp mais bon je me pose la question ...


    Je souhaite simplement que ma webapp instancie les objects dinamiquement via le webservice avec 1 seul session et par la suite j'améliorerai en multi-session.

    Je vous remercie encore

  2. #2
    Expert éminent sénior
    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
    Points : 48 804
    Points
    48 804
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Caused by: java.lang.NullPointerException
    	at alphadevApi.ExternalServices.setcreateObj(ExternalServices.java:75)
    je vois pas ce qu'il y a d'obscur, vous avez un problème de null à cet endroit.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2009
    Messages : 54
    Points : 60
    Points
    60
    Par défaut
    En premier lieu merci d'avoir pris quelques minutes de votre temps.

    oui exacte et c'est là que j'ai un doute car exactement a cette ligne là
    j'appel une factory qui fonctionne en dehors de tomcat et qui fait d'autres instanciation...


    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
     
    	public String setcreateObj(String sMMObject, String uri, int idsession) {
    		System.out.println("************setcreateObj ********* ");
    		String buildUri = "";
     
     
    			System.out.println("setcreateObj Session  ");
    			Object oMMObject = oMediamapHandler.createMMObject(sMMObject, oRDFInstanceGraph, getIdFontain(uri) + String.valueOf(idsession));
    //***Ligne blocante at //alphadevApi.ExternalServices.setcreateObj(ExternalServices.java:75)			   
    //Linge 75 juste ci-dessous
                            MediaBean bean = new MediaBean();
    			System.out.println("**** setcreateObj create beans ");
    			bean.setObjmediamap(oMMObject);
    			bean.setTypeobject(sMMObject);
    			bean.setUri(uri + String.valueOf(idsession));
    			tabMediamap.add(bean);
    			System.out.println("**** Uri object : " + bean.getUri());
     
    			buildUri = uri + String.valueOf(idsession);
    			System.out.println("uri return : " + buildUri);
     
    		return buildUri;
    	}

  4. #4
    Expert éminent sénior
    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
    Points : 48 804
    Points
    48 804
    Par défaut
    vu du code, la ligne 75 soit être une ligne plus haut que vous ne pensez, car la ligne que vous indiquez ne peux pas déclencher de NPE. Par contre, celle-ci bien

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Object oMMObject = oMediamapHandler.createMMObject(sMMObject, oRDFInstanceGraph, getIdFontain(uri) + String.valueOf(idsession));
    si oMediamapHandler est null.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2009
    Messages : 54
    Points : 60
    Points
    60
    Par défaut
    en fait j'ai une petite explication

    -- Dans un premier temps je prend une session qui instancie
    oMediamapHandler qui est l'instanciation dynamique et autre.

    -- Dans un second temps je demande la création d'un object avec differents parametre
    et là a ma grande surprise les object instancié (dans le getsession ) sont a null.

    Comme ci le webservice ne gardait pas en mémoire mes autres requetes entre deux appel

    pourtant j'instancie bien mon object a 1 seul endroit dans mon webService lors de getIdSession()

    en voici pour preuve et le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    private ExternalServices serv;
    public int getIdSession()
    	{
    		// static InitCom.profile
     serv = new ExternalServices();
                    InitCom.profile = "/home/ggu/project/conf-file/" + "Desktopggu" + ".properties";
    		int idsession = serv.getIdsession();
    		return idsession;
    	}
    mais la j'ai mis des que le webserice est lancé ExternalService et instancié histoire de voir

    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
     
    public class MedecWs {
     
    	private ExternalServices serv = new ExternalServices();
     
    	public int getIdSession()
    	{
    		// static InitCom.profile
                    InitCom.profile = "/home/ggu/project/conf-file/" + "Desktopggu" + ".properties";
    		int idsession = serv.getIdsession();
    		return idsession;
    	}
    	public boolean closeSession(int idsession)
    	{
    		return serv.closeSession(idsession);		
    	}
     
    	public void saveDatal(String Uri, int idsession)
    	{
    		serv.saveDodel(Uri, idsession);
    	}
    	public String getQuery(String sQuery, int idsession)
    	{
    		return erv.getQuery(sQuery, idsession);
    	}
    	public String setcreateObj(String sbject, String uri, int idsession)
    	{
    		return serv.setcreateObj(sObject, uri, idsession);
    	}
    	public String setObjPropertie(String sObject, String uri, String sMethodName,String sPropertieValue, int idsession)
    	{
    		return serv.setObjPropertie(sObject, uri, sMethodName, sPropertieValue, idsession);
    	}
     
    	public int getidstring()
    	{
    		return 12345; //en dur pour test
    	}
    	public String getPopu()
    	{
    		return serv.getnsPopu();
    	}
    }
     il y a quelque chose qui n'est pas pris en compte entre deux appel de methode du webservice
    Je dois lancer un thread qui garde bien au chaud les instance d'object .. ou un truc du style ???

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2009
    Messages : 54
    Points : 60
    Points
    60
    Par défaut
    Enfait entre deux appels de methode du webservice instance sont resetée j'ai l'impression.
    remise a null.

    donc je pense me diriger vers une class threadée qui sera appelée par le web service.

    non ?

Discussions similaires

  1. [c# 2.0] Instanciation dynamique de classe
    Par Arthis dans le forum ASP.NET
    Réponses: 3
    Dernier message: 10/10/2006, 19h03
  2. Instanciation dynamique d'un tableau
    Par polo54 dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 08/06/2006, 11h37
  3. Instanciation dynamique
    Par yon386 dans le forum C++
    Réponses: 5
    Dernier message: 15/02/2006, 22h32
  4. [VB.NET] instanciation dynamique
    Par lucie.houel dans le forum ASP.NET
    Réponses: 1
    Dernier message: 21/11/2005, 13h54
  5. Instanciation dynamique d'ActiveX
    Par cathar_rhythm dans le forum MFC
    Réponses: 12
    Dernier message: 28/06/2005, 09h11

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