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

Services Web Java Discussion :

[débutante] Envoi données et affichage


Sujet :

Services Web Java

  1. #81
    Membre habitué

    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 105
    Points : 134
    Points
    134
    Par défaut
    peux tu me fournir un zip de ton projet
    Willy78

  2. #82
    Futur Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 76
    Points : 5
    Points
    5
    Par défaut
    Je l'ai mis sur rapidshare désolée :
    http://rapidshare.de/files/11758914/...tions.zip.html

  3. #83
    Membre habitué

    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 105
    Points : 134
    Points
    134
    Par défaut
    Il y des contraintes sur la classe ConventionEnregistrement qui doit être une interface qui étends Remote et dont chacune des méthodes doit pouvoir lancer une RemoteException:
    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
    package localhost.axis.services.Version;
     
    import java.rmi.Remote;
    import java.rmi.RemoteException;
     
    public interface ConventionEnregistrement extends Remote {
     
    	public void enregistrementConvention(String labnomE,
    										 String labrueE,
    										 String labvilleE,
    										 String labcodePostE,
    										 String labnumE,
    										 String labnomResp,
    										 String labnomInterloc)throws RemoteException;	
    }
    En suite, au niveau de la classe de test, je ne l'est pas touchée, tu peux la supprimer j'ai fait les modifs dans Resultat:
    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
    package localhost.axis.services.Version;
     
    import java.util.*;
    import javax.swing.*;
     
    public class Resultat {
    	public Resultat(Vector vecteur) {
    		try {
     
    			ConventionEnregistrementServiceLocator loc = new ConventionEnregistrementServiceLocator();
    			java.net.URL url = new java.net.URL(
    					"http://localhost:8080/axis/services/Convention");
    			ConventionEnregistrement stub = loc.getConventions(url);
    			stub.enregistrementConvention(vecteur.elementAt(0).toString(),
    					vecteur.elementAt(1).toString(), vecteur.elementAt(2)
    							.toString(), vecteur.elementAt(3).toString(),
    					vecteur.elementAt(4).toString(), vecteur.elementAt(5)
    							.toString(), vecteur.elementAt(6).toString());
     
    		} catch (Exception e1) {
    			System.out.println("erreur" + e1);
    		}
    	}
     
    }
    Normalement, c'est ok pour la compil et si tomcat est démarré çà doit marcher.
    Willy78

  4. #84
    Futur Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 76
    Points : 5
    Points
    5
    Par défaut
    Oh c'est pas vrai !!!!! j'suis maudite c'est pas possible !

    Y'a encore une erreur de générée !!!!

    J'commence à en avoir marre là :

    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
    Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: org.apache.commons.logging.LogFactory
    	at org.apache.axis.components.logger.LogFactory.class$(LogFactory.java:45)
    	at org.apache.axis.components.logger.LogFactory$1.run(LogFactory.java:45)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at org.apache.axis.components.logger.LogFactory.getLogFactory(LogFactory.java:41)
    	at org.apache.axis.components.logger.LogFactory.<clinit>(LogFactory.java:33)
    	at org.apache.axis.handlers.BasicHandler.<clinit>(BasicHandler.java:43)
    	at org.apache.axis.client.Service.getAxisClient(Service.java:103)
    	at org.apache.axis.client.Service.<init>(Service.java:112)
    	at localhost.axis.services.Version.ConventionEnregistrementServiceLocator.<init>(ConventionEnregistrementServiceLocator.java:12)
    	at localhost.axis.services.Version.Resultat.<init>(Resultat.java:10)
    	at localhost.axis.services.Version.Add.actionPerformed(Add.java:161)
    	at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
    	at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
    	at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
    	at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
    	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
    	at java.awt.Component.processMouseEvent(Unknown Source)
    	at javax.swing.JComponent.processMouseEvent(Unknown Source)
    	at java.awt.Component.processEvent(Unknown Source)
    	at java.awt.Container.processEvent(Unknown Source)
    	at java.awt.Component.dispatchEventImpl(Unknown Source)
    	at java.awt.Container.dispatchEventImpl(Unknown Source)
    	at java.awt.Component.dispatchEvent(Unknown Source)
    	at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
    	at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
    	at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
    	at java.awt.Container.dispatchEventImpl(Unknown Source)
    	at java.awt.Window.dispatchEventImpl(Unknown Source)
    	at java.awt.Component.dispatchEvent(Unknown Source)
    	at java.awt.EventQueue.dispatchEvent(Unknown Source)
    	at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    	at java.awt.EventDispatchThread.run(Unknown Source)

  5. #85
    Membre habitué

    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 105
    Points : 134
    Points
    134
    Par défaut
    bonjour

    ajoute commons-logging.jar dans les libs du projet eclipse:

    D:\Logiciels\Apache\SOAP\axis-1_2_1\lib\commons-logging-xxx.jar
    Willy78

  6. #86
    Futur Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 76
    Points : 5
    Points
    5
    Par défaut
    Merci Willy ! Désolée de répondre aussi tard !
    J'aurai une autre question : après avoir exécuté mon projet sous eclipse, comment est-ce-que je lance mon web service par l'intermédiaire de mon browser?? Il doit bien falloir faire quelque chose de spécial avant de lancer l'url que j'ai passé dans mon fichier wsdl, nan?

  7. #87
    Futur Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 76
    Points : 5
    Points
    5
    Par défaut
    Encore une petite chose :

    Lorsque je lance mon projet : il m'indique une erreur d'indice....

    J'avais recopié le code que tu m'avais conseillé Willy :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    while(result.next()) {
    	List liste = new ArrayList();
    	for(int i=1; i<=8; i++){
    		liste.add(result.getString(i));
    	}
    	vecteur.add(liste);
    }
    => ce code ajoute à une liste qui permettra ensuite d'en extraire les données qu'elle contient.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    stub.enregistrementConvention(vecteur.elementAt(0).toString(),
              vecteur.elementAt(1).toString(), 
              vecteur.elementAt(2).toString(),
              vecteur.elementAt(3).toString(),
              vecteur.elementAt(4).toString(),
              vecteur.elementAt(5).toString(),
              vecteur.elementAt(6).toString());
    => c'est là qu'on extrait ces informations.

    Voici ce qu'il y a d'indiqué dans la console après l'exécution de mon projet :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT * FROM `etablissement`;
    com.mysql.jdbc.Statement@bfbdb0
    Vecteur[[519, txtnomE, txtrueE, txtvilleE, txtcodePostE, txtnumE, txtnomResp, txtnomInterloc]]
    erreurjava.lang.ArrayIndexOutOfBoundsException: 1 >= 1
    Il me recopie bien ce les informations que je lui ai entré (txtnomE...) et les met bien dans une liste du vecteur, mais il a un bug avec l'indice parce qu'il prend pour l'indice 1, la première liste !

    Si j'ai deux entrées dans ma base de données, il m'indique :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT * FROM `etablissement`;
    com.mysql.jdbc.Statement@1050169
    Vecteur[[521, rtyurtyu, ryturty, rtyeu, 45679, 4564456456, rtyurty, rtyurtyu], [522, txtnomE2, txtrueE2, txtvilleE2, txtcodePostE2, txtnumE2, txtnomResp2, txtnomInterloc2]]
    erreurjava.lang.ArrayIndexOutOfBoundsException: 2 >= 2

  8. #88
    Futur Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 76
    Points : 5
    Points
    5
    Par défaut
    Ensuite lorqu'il y a plus de 6 enregistrements dans la base, il m'écrit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT * FROM `etablissement`;
    com.mysql.jdbc.Statement@bfbdb0
     
    Vecteur[[526, tityuit, yuity, uityuiuyz, rzerz, retzert, zertzert, ytuuit], [525, tuyit, yuityui, tyuit, uityui, tyuity, uityuit, yuituitui], [524, tuyityui, tuityuit, yuityuit, yuityuit, uityuit, tuyityuitu, tyuityui], [521, rtyurtyu, ryturty, rtyeu, 45679, 4564456456, rtyurty, rtyurtyu], ....]
     
    erreurThe AXIS engine could not find a target service to invoke!  targetService is Convention
    => il n'a plus le problème d'indice, mais erreurTheAxis...

    A croire qu'il y aura TOUJOURS un problème ! lol

  9. #89
    Membre habitué

    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 105
    Points : 134
    Points
    134
    Par défaut
    Bonsoir

    C'est normal tu as un vecteur dont la dimension est égale au nombre de lignes dans la base.

    Chaque element de ce vecteur est une liste contenant les elements d'une ligne de la table. tu peux changer l'arrayList en vector si tu veux indexer les éléments:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    while(result.next()) {
       Vector ligne = new Vector();
       for(int i=1; i<=8; i++){
          ligne.add(result.getString(i));
       }
       vecteur.add(ligne);
    }
    on a alors un vecteur contenant les enregistrements et chaque element de ce vecteur est un vecteur contenant les colones.

    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
    package localhost.axis.services.Version;
     
    import java.util.*;
    import javax.swing.*;
     
    public class Resultat {
       public Resultat(Vector vecteur) {
          try {
     
             ConventionEnregistrementServiceLocator loc = new ConventionEnregistrementServiceLocator();
             java.net.URL url = new java.net.URL(
                   "http://localhost:8080/axis/services/Convention");
             ConventionEnregistrement stub = loc.getConventions(url);
    // pour chaque ligne on invoque le service
           for(int i=0;i<vecteur.size();i++){
                  Vector ligne=(Vector)vecteur.elementAt(i);
                  stub.enregistrementConvention(ligne.elementAt(0).toString(),
                   ligne.elementAt(1).toString(), ligne.elementAt(2)
                         .toString(), ligne.elementAt(3).toString(),
                   ligne.elementAt(4).toString(), ligne.elementAt(5)
                         .toString(), ligne.elementAt(6).toString());
         }
          } catch (Exception e1) {
             System.out.println("erreur" + e1);
          }
       }
     
    }
    Willy78

  10. #90
    Futur Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 76
    Points : 5
    Points
    5
    Par défaut
    Merci beaucoup Willy, avec toute ces histoires de vecteurs, listes...c'est à ne plus rien comprendre ! je teste tout ca...et j'te dis

  11. #91
    Futur Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 76
    Points : 5
    Points
    5
    Par défaut
    Toujours une erreur...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT * FROM `etablissement`;
    com.mysql.jdbc.Statement@bfbdb0
     
    erreurThe AXIS engine could not find a target service to invoke!  targetService is Convention

  12. #92
    Membre habitué

    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 105
    Points : 134
    Points
    134
    Par défaut
    Bonjour

    Ton erreur est due au fait que ton application qui fonctionne tente d'invoquer le service web Convention sur le serveur tomcat. Est ce que le serveur fonctionne?
    Willy78

  13. #93
    Futur Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 76
    Points : 5
    Points
    5
    Par défaut
    Normalement il fonctionne puisque je le lance, et j'arrive à accéder au menu axis...

  14. #94
    Membre habitué

    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 105
    Points : 134
    Points
    134
    Par défaut
    Que donne l'url http://localhost:8080/axis/services
    Willy78

  15. #95
    Futur Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 76
    Points : 5
    Points
    5
    Par défaut
    Ca me sort les services :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    And now... Some Services
     
        * AdminService (wsdl)
              o AdminService 
        * Version (wsdl)
              o getVersion

  16. #96
    Membre habitué

    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 105
    Points : 134
    Points
    134
    Par défaut
    Comme l'indique le message d'erreur, il n'existe pas de service convention sur ton serveur.
    Willy78

  17. #97
    Futur Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 76
    Points : 5
    Points
    5
    Par défaut
    ah ok...ba merci pour l'info parce que j'avais même pas fais le rapprochement entre les services et ce qu'il y a d'affiché à l'url http://localhost:8080/axis/services

    Comme quoi j'ai des (GROS) progrès à faire lol

  18. #98
    Futur Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 76
    Points : 5
    Points
    5
    Par défaut
    Pour ajouter Convention à mes services d'axis, il faut utiliser la commande java org.apache.axis.client.AdminClient fichier.wsdl ??

    J'ai vu que cette opération mettait à jour le fichier $Tomcat-Dir/webapps/axis/WEB-INF/server-config.wsdd.

    Mais je viens de voir qu'il y a toujours mon problème de classpath, c'est bizarre ca...

  19. #99
    Membre habitué

    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 105
    Points : 134
    Points
    134
    Par défaut
    Maintenant que la partie cliente du service est terminée, on passe à la partie serveur:

    La partie serveur est un projet à part.

    Le projet est de type application web.

    Quand tu as généré les classes avec wsdl2java, un fichier deploy.wsdd et un fichiers undeploy.wsdd ont été créés. Ces deux fichiers permettent bien de déployer le service avec axis.

    Dans un nouveau projet eclipse tu copie les fichier générés par wsdl2java.
    Tu modifies le fichier ConventionsSoapBindingStub.java qui est l'implémentation du service. C'est dans ce fichiers que tu implémentes les opérations que doit effectuer le service.

    Une fois cela fait, il faut utiliser org.apache.axis.client.AdminClient en passant comme argument le fichier deploy.wsdd.
    Willy78

  20. #100
    Futur Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 76
    Points : 5
    Points
    5
    Par défaut
    Quand tu as généré les classes avec wsdl2java, un fichier deploy.wsdd et un fichiers undeploy.wsdd ont été créés.
    J'ai pas ces deux fichiers puique j'avais repris par rapport à ce que tu m'avais passé du fait que j'ai toujours eu un problème de soit disant classpath, et du coup...y'a aucun fichier deploy.wsdd ou undeploy.wsdd !

    Ce que j'ai c'est ca :

    http://rapidshare.de/files/12125225/...tions.zip.html

    C'est simplement les classes en fait

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] Base de données - Conexion Affichage
    Par doublegold dans le forum Développement Sharepoint
    Réponses: 1
    Dernier message: 17/03/2015, 13h56
  2. Réponses: 2
    Dernier message: 28/02/2015, 22h48
  3. [Débutant] Récupération de données et affichage sous forme de tableau
    Par Samrenfou dans le forum Interfaces Graphiques en Java
    Réponses: 3
    Dernier message: 17/04/2007, 10h18
  4. [Débutant] Envoi de fichier par socket
    Par zapho dans le forum Entrée/Sortie
    Réponses: 13
    Dernier message: 26/05/2004, 18h58
  5. Réponses: 4
    Dernier message: 18/08/2003, 09h53

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