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. #41
    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
    exprimer clairement un problème est un exercice difficile
    J'avoue que meme quand on connait le contexte, c'est pas facile

    Alors moi je m'occupe pas des réservations : on zappe ca, c'est pas important je pense.

    Ce que je fais pour l'instant c'est tout simple : c'est de l'apprentissage :

    Je dois créer une table etablissement avec easyphp. (j'ai fais, y'a l'id de létablissement, son nom, son adresse ... 8 données en tout).
    Ensuite j'ai installé tomcat, et axis.

    Je dois aprés ca : créer une interface swing qui va permettre d'entrer des données sur l'établissement : son nom, son adresse... 7 données en tout (pas l'id qui s'incrémente automatiquement). Ces données sont envoyées a la base. => donc tout ca je pense que ca constitue le coté serveur.

    Une fois ces données envoyées a la base, je dois récupérer dans un vecteur toutes les données de la base et les afficher sur le browser. => ca constitue le coté client je suppose.

    Donc en voyant plus simple encore : je pense que ma classe add (qui envoie les données a la base est complète en fait : je vois pas ce qu'il faudrait que j'ajoute) :

    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
    try {
    				Statement stmt = con.createStatement();
    				rqt = "INSERT INTO etablissement (nomE , rueE , villeE , codePost , numTel , nomResp , nomInterloc ) VALUES ("+txtnomE.getText()+"','"+txtrueE.getText()+"','"+txtvilleE.getText()+"','"+txtcodePostE.getText()+"','" +txtnumE.getText()+"','"+txtnomInterloc.getText()+"');'";
     
    //			4. envoie de la requete
    				int nbLignSupp = stmt.executeUpdate(rqt);
    				String rqt2 = "SELECT * FROM etablissement;";
    				ResultSet result = stmt.executeQuery(rqt2);
    				JOptionPane.showMessageDialog(this,result);
    				while (result.next()) {
    					List liste = new ArrayList();
    					liste.add(result.getString(1) + result.getString(2) + result.getString(3) + 
    					result.getString(4) + result.getString(5) + result.getString(6) + 
    					result.getString(7) + result.getString(8));
    					vecteur = new Vector(liste);
    					localhost.axis.services.Version.Resultat res = new localhost.axis.services.Version.Resultat(vecteur);
    				}
    			} 
    		    catch (SQLException except2) {
    		    	JOptionPane.showMessageDialog(this,"Erreur sur la requete : " + except2);
    			}
    Je mets le resultSet dans une liste que j'ajoute ensuite au vecteur (je suis pas sure que ca marche....)

    Donc il me resterai plus que la classe du coté client a faire mais en plus, je ne vois pas ce qu'il faudrait mettre dedans !

  2. #42
    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
    Ok on va aussi laisser tomber les concepts "coté client" et "coté serveur"

    Tu as une table, une appli Swing qui doit envoyer les données dedans.

    Quelques remarques sur ton code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    while (result.next()) {
                   List liste = new ArrayList();
                   liste.add(result.getString(1) + result.getString(2) + result.getString(3) +
                   result.getString(4) + result.getString(5) + result.getString(6) +
                   result.getString(7) + result.getString(8));
                   vecteur = new Vector(liste);
                   localhost.axis.services.Version.Resultat res = new localhost.axis.services.Version.Resultat(vecteur);
                }
    Je suppose que tu veux mettre dans un vecteur l'ensemble des lignes de la table. Chaque ligne est représenté par une liste.
    - Lorsque on ajoute deux chaine de caractères on obtient une nouvelle chaine

    Je pense que le bon code est:
    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);
                }
    Par contre je ne comprends pas la signification de cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
                  localhost.axis.services.Version.Resultat res = new localhost.axis.services.Version.Resultat(vecteur);
    et le lien avec le navigateur.
    Willy78

  3. #43
    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
    Une petite chose encore (ca en fait des choses en tout lol ).
    J'ai regardé ton lien willy mais j'ai pas compris le terme de 'stub', c'est la même chose que le skeletton du coté serveur, mais c'est quoi exactement?
    J'aurais bien fait une formation sur le web service mais j'ai trouvé un prix :
    Pour 3 jours de formation ........ 1495€, alors je m'en passerai lool

  4. #44
    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 désolé Willy j'avais pas vu ton post !

    Merci d'abord de m'avoir corrigée

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    localhost.axis.services.Version.Resultat res = new localhost.axis.services.Version.Resultat(vecteur);
    Ca en fait ca crée une instance de 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
    package localhost.axis.services.Version;
     
    import java.util.*;
     
    public class Resultat extends Add{
     
    	public Resultat(Vector vecteur) {
     
    		try {
    			java.net.URL url = new java.net.URL("http://localhost:8080/axis/services/Test");
    			localhost.axis.services.Version.VersionServiceLocator loc = new localhost.axis.services.Version.VersionServiceLocator();
     
    		}
    		catch (Exception e1) {
    			System.out.println("erreur" + e1);
    		}
    	}
    Elle est pas fini ma classe, c'est celle qui récupère les données du vecteur

  5. #45
    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
    Le stub et le skeletton ont été introduits par corba. en fait, il s'agit d'une couche logicielle qui transforme les objets java en xml pour les services web

    Je ne peut pas continuer ce soir, (faut dormir demain on bosse) malheureusement, je n'ai pas accès aux forum en journée. je pense que cpr0 pourra t'aider vu comme nous avons fait avancer le sujet. Je reprends demain soir vers 23h (HCUP rugby oblige )

    Cordialement
    Willy78

  6. #46
    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
    Ok, pas de soucis.

    Meric beaucoup en tout cas pour votre aide, c'est vraiment gentil à vous !

    Et vous êtes très patient aussi lol !


  7. #47
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 76
    Points : 72
    Points
    72
    Par défaut
    Bonjour à vous 2,

    Tout d'abord, merci Willy pour avoir pris le relais et aussi pour avoir apporter quelques corrections à mes propos. Je dois effectivement avouer que j'avais complètement zappé le WSDL. En fait, dans mes expériences je n'ai pas enocre eu à m'occuper de la partie serveur (désolé Willy de ramener ces notions client/serveur sur le tapis, mais parfois il faut bien appeler un chat un chat ). Je n'ai eu à m'occuper que de la partie client, c'est à dire appeler les services web déjà existants (c'est mon collègue qui s'est occupé de cette partie) et en récupérer les résultats. Voilà pour la petite explication.

    Si j'ai bien compris, de toute façon Sapphire, c'est bien de cette partie là dont tu dois t'occuper, donc je pense que je vais pouvoir t'aider. Willy prendra peut-être à nouveau le relais ce soir si besoin est. En attendant, on va essayer de continuer. Je t'avais promis des pdf, j'ai malheureusement eu des soucis de connexion ftp hier soir, j'espère les résoudre aujourd'hui et te mettre ces fichiers à disposition sur mon site dans la journée.

    Ceci étant dit, j'ai un bon exemple de code concernant les web services, je vais y jeter un oeil pour pouvoir en tirer quelque chose pour toi. Je te dis à plus tard, je vais prendre mon ptit déj ...

    -David-

  8. #48
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 76
    Points : 72
    Points
    72
    Par défaut
    Voilà, mes soucis de connexion sont réglés !

    Je t'ai préparer une petite page sur mon site, à l'arrach comme on dit (pas d'habillage, le strict nécessaire) on verra plus tard pour mettre un topo sur les services web.

    Je te donne le lien ;
    http://www.cpr0.com/dev

    Je te conseille vivement d'y jeter un oeil, on verra ensuite pour le code exemple. Les docs sont en français et ont l'air relativement concises.

    Moi je me sauve quelques heures, je repasserai plus tard.

    Bonne lecture

    -David-

  9. #49
    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
    Bonjour !

    Merci David pour ton lien : je vais y jeter un coup d'oeil

  10. #50
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 76
    Points : 72
    Points
    72
    Par défaut
    Je t'en prie

    Je suis de retour, j'ai commencé à monter un petit projet sous Eclipse avec l'exemple que j'ai ramené.

    Entre temps j'ai retrouvé un exemple de site qui propose des services web, tu peux aller y jeter un oeil également, surtout qu'il donne en plus pas mal de détail permettants d'utiliser les sevices; les schémas WSDL des requètes et réponses.

    Je pense que ça peut t'être utile ou en tout cas te donner des informations supplémentaires. A tester...

    A+

    -David-

  11. #51
    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
    J'irais voir ce site également, mais la je vais devoir partir : je reviens ce soir ! Je vais voir mon tuteur, donc il va surement m'aider a avancer : je vous tiens au courant de tout ca !

    A +

  12. #52
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 76
    Points : 72
    Points
    72
    Par défaut
    ça marche Sapphire. Willy sera de retour également ce soir je pense. Moi je suis en train de coder un test qui utilise un des services web dont je t'ai envoyé le lien. Je me place donc, comme pour toi, côté client. C'est à dire que je vais appeler un de ces services, en l'occurence un convertisseur de mesures, et afficher le résultat. Par exemple combien font 25°C et Fahrenheit .

    Je te dis à plus tard alors...

    Bye,

    -David-

  13. #53
    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 suis de retour aprés mon entretien avec mon tuteur lol
    Alors : ce que j'ai a faire me parait encore plus simple en fait parce que ce que j'avais vu... je me demande si je me suis pas pris la tête pour pas grand chose...
    Bref, toujours est-il que je dois :

    1. executer la commande Java2WSDL pour obtenir le fichier wsdl (logique, on s'en serait douté ) à partir d'une classe que mon tuteur m'a fait voir ;

    2. executer la commande inverse : WSDL2Java pour obtenir les classes correspondantes au fichier wsdl qui a été généré précédemment ;

    3. coder un peu (et oui : faut pas rêver quand même : ca aurait été trop simple !) dans les classes java générées.

    Alors mon problème (car j'ai toujours des problèmes lol) :

    La commande WSDL2Java (je pense que Java2WSDL également) ne fonctionne pas...

    Je vous vois déjà crier : "T'AS PAS ENTREZ LES BONNES VARIABLES DANS TON CLASSPATH ! ! !" ... mais je pense les avoir bien entrées, donc vu que pour moi elles me paraissent correctes : je vois pas l'erreur, est-ce-que vous pourriez me la trouver si vous la voyé s'il vous plait !??

    AXIS_HOME :
    D:\Logiciels\Apache\SOAP\axis-1_2_1

    AXIS_LIB :
    %AXIS_HOME%\lib

    AXIS_CLASSPATH :
    %AXIS_LIB%\axis.jar;
    %AXIS_LIB%\axis-ant.jar;
    %AXIS_LIB%\commons-discovery-0.2.jar;
    %AXIS_LIB%\commons-logging-1.0.4.jar;
    %AXIS_LIB%\jaxrpc.jar;
    %AXIS_LIB%\log4j-1.2.8.jar;

    CATALINA_HOME :
    D:\Logiciels\Apache\apache-tomcat-5.5.12

    CLASSPATH :
    .;D:\Logiciels\Java\jre1.5.0_01\lib;
    D:\Logiciels\Java\jdk1.5.0_01\lib;
    D:\Logiciels\Java\jdk1.5.0_01\jre\lib\ext\mysql-connector-java-3.0.17-ga-bin.jar;
    %AXIS_LIB%\saaj.jar;
    %AXIS_LIB%\wsdl4j-1.5.1.jar;
    %AXIS_LIB%\mail.jar;
    %AXIS_LIB%\activation.jar;
    %AXIS_LIB%\xerces.jar;

    JAVA_HOME :
    D:\Logiciels\Java\jdk1.5.0_01

    Path :
    D:\Logiciels\Java\jdk1.5.0_01\bin;

    J'ai peut être oublié une variable...j'en sais rien, en tout cas j'la trouve pas cette garce lol



  14. #54
    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

    Je suis content que cela semble plus clair, et on entre dans un chemin 'classique' de développement d'un service web.

    Peux tu nous donner la commande que tu tapes lorsque tu invoques wsdl2java, ainsi que le résultat car les variables me semblent bonnes.
    Willy78

  15. #55
    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
    Dans ma fenetre dos, je tape la commande :

    java -classpath %AXIS_CLASSPATH% org.apache.axis.wsdl.Java2WSDL -o Conventions.wsdl -l "http://localhost:8080/axis/services/Conventions" "fichier.java"

    L'erreur généré :

    java.lang.ClassNotFoundException : "fichier.java"

    at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
    at org.apache.axis.utils.ClassUtils$2.run(ClassUtils.java:186)
    at java.security.AccessController.doPrivileged(Native Method)
    at org.apache.axis.utils.ClassUtils.loadClass(ClassUtils.java:160)
    at org.apache.axis.utils.ClassUtils.forName(ClassUtils.java:100)
    at org.apache.axis.wsdl.fromJava.Emitter.setCls(Emitter.java:2079)
    at org.apache.axis.wsdl.Java2WSDL.run(Java2WSDL.java:584)
    at org.apache.axis.wsdl.Java2WSDL.main(Java2WSDL.java:682)

    Et je viens de m'apercevoir d'un truc, c'est que mon serveur Tomcat ne tournait pas quand j'executais la commande WSDL2Java...parce que je viens de l'essayer et elle a l'air d'avoir fonctionnée... HONTE A MOI ! lol

    Par contre la commande Java2WSDL : j'ai du oublier des paramètres : c'est pour cela qu'elle ne fonctionne pas je pense

  16. #56
    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
    L'utilisation de l'option -l permet juste de fixer l'url du service dans le fichier wsdl généré. Le fonctionnement de Tomcat n'influs pas sur celui de java2wsdl.

    Le piège c'est que pour utiliser java2wsdl, tu dois:

    1 compiler la classe
    2 ajouter le répertoire contenant la classe dans ton classpath
    3 appeler java2wsdl sur le fichier compilé.

    Exemple
    On a un fichier java test.TestService.java compilé dans le répertoire classes.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    javac -d build -sourcepath src src/test/TestService.java
    java -classpath %AXIS_CLASSPATH%;build org.apache.axis.wsdl.Java2WSDL -o Conventions.wsdl -l "http://localhost:8080/axis/services/Conventions" test.TestService
    Willy78

  17. #57
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 76
    Points : 72
    Points
    72
    Par défaut
    Bonjour Sapphire, bonjour Willy,

    Je pars donc pour une semaine, je repasserai faire un tour sur vos posts à mon retour. D'ici là, bon courage Sapphire et merci à Willy de prendre le relais

    A bientôt,

    -David-

  18. #58
    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
    Salut tout le monde

    Je te souhaite un bon voyage David et j'espère que tu en profitera un max !

    Merci et je teste tout de suite ta commande Willy.

  19. #59
    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
    Excuse moi Willy de ne pas l'avoir dis avant mais j'ai pas compris :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    javac -d build -sourcepath src
    javac pour compiler;
    -d build pour ???
    -sourcepath src : ca représente quoi exactement??

    Encore désolée...

  20. #60
    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
    OK, le -d build sert à créer la classe compilée dans le dossier build et -soucepath donne l'information du répertoire de la classe à compiler...

    J'ai crée une variable : CLASSE_SRC qui pointe sur le répertoire de ma classe à compiler :
    D:\Documents and Settings\Toto\Mes
    documents\Eclipse\Workspace\Conventions\src\localhost\axis\services\Version


    Je lance la commande :
    C:\>javac -d build -sourcepath %CLASSE_SRC% "D:\Documents and Settings\Toto\Mes
    documents\Eclipse\Workspace\Conventions\src\localhost\axis\services\Version\Conv
    entionEnregistrement.java"

    Il me renvoie comme erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    D:\Documents and Settings\Toto\Mes documents\Eclipse\Workspace\Conventions\src\localhost\axis\services\Version\ConventionEnregistrement.java:3: error while writing localhost.axis.services.Version.ConventionEnregistrement: [b]build\localhost\axis\services\Version\ConventionEnregistrement.class[/b] (Le chemin d'accès spécifié est introuvable)
    public class ConventionEnregistrement {
           ^
    1 error
    Pourquoi le build se place t-il ici? pourquoi est-ce-qu'il se place dans le répertoire src\ ??

    Voici ma classe à compiler :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    package localhost.axis.services.Version;
     
    public class ConventionEnregistrement {
    	private String labnomE;
    	private String labrueE;
    	private String labvilleE;
    	private String labcodePostE;
    	private String labnumE;
    	private String labnomResp;
    	private String labnomInterloc;
     
    	public void enregistrementConvention(String labnomE, String labrueE, String labvilleE, String labcodePostE, String labnumE, String labnomResp, String labnomInterloc) { }
     
    }

+ 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