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

Eclipse Java Discussion :

[ Eclipse 3.0 ] [ ant ] Intégrer des exemples dans eclipse


Sujet :

Eclipse Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2002
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 48
    Points : 46
    Points
    46
    Par défaut [ Eclipse 3.0 ] [ ant ] Intégrer des exemples dans eclipse
    Bonjour,

    J'ai tous les problèmes du monde à utiliser Eclipse pour compiler des exemples fournit avec les tutoriaux de Sun qui se compilent avec un build.xml pour ant. Quelqu'un sait comment importer correctement les fichiers des exemples dans eclipse pour pouvoir lancer ant dans eclipse sans avoir à modifier le build.xml?

    Merci

  2. #2
    Membre habitué
    Inscrit en
    Octobre 2002
    Messages
    164
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 164
    Points : 190
    Points
    190
    Par défaut
    Une fois ton projet créé dans Eclipse tu devrais voir l'ensemble des fichiers fournis par Sun ainsi que le build.xml

    De là il te suffit d'ouvrir la vue Ant d'y rajouter ton script et d'éxécuter tes tâches.

    Donne plutôt là ou tu en es et ce qu'il ne marche pas (exception, etc...).

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Août 2002
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 48
    Points : 46
    Points
    46
    Par défaut
    Tout d'abord, merci de t'intéresser à mon problème

    Je travaille actuellement sur les WebServices, il s'agit donc des exemples du JWSDP 1.5.

    Je crée un projet Java vide tout simple sous eclipse, ensuite j'importe la totalité du répertoire d'exemple (ici le repertoire xws-security) de cette manière, je dispose de tous les fichiers impliqués dans les règles de ant. Mon problème vient de la génération d'un stub avec wscompile :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    [...]
    gen-client:
            [echo] Running wscompile....
       [wscompile] erreur : Erreur du modeleur : impossible d'analyser le document dans "./etc/PingService.wsdl" : java.io.FileNotFoundException: C:\Apps\eclipse\etc\PingService.wsdl (The system cannot find the path specified)
       [wscompile] erreur : java.lang.NullPointerException
       [wscompile] Command invoked: wscompile C:\Apps\jre1.5.0\bin\java.exe -classpath C:\Apps\eclipse\workspace\simple\samples\simple\build\client\[...] com.sun.xml.rpc.tools.wscompile.Main -d C:\Apps\eclipse\workspace\simple\samples\simple\build\client -gen:client -keep -security C:\Apps\eclipse\workspace\simple\samples\simple\config\sign-client.xml C:\Apps\eclipse\workspace\simple\samples\simple\etc\client-config.xml
     
    Total time: 7 seconds
    Je ne vois pas comment corriger ce problème sans modifier le build.xml, or mon but est justement de réussir à utiliser Eclipse pour tracer l'execution de l'exemple, donc sans toucher au build.xml.

    Toute idée est la bienvenue, merci d'avance

    EDIT : j'ai coupé le CP, car ça rendait le tout illisible, et c'était surtout inutile dans notre problème.

  4. #4
    Membre habitué
    Inscrit en
    Octobre 2002
    Messages
    164
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 164
    Points : 190
    Points
    190
    Par défaut
    L'erreur (tu as du le voir) vient du fait qu'il n'arrive pas à trouver le fichier ./etc/PingService.wsdl pour générer le client. Et d'après l'erreur il s'attendait à trouver ce fichier dans C:\Apps\eclipse\etc\PingService.wsdl

    Mais en bas de ton log on trouve ce répertoire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    C:\Apps\eclipse\workspace\simple\samples\simple
    Donc quelques précisions :
    - ton répertoire de base pour ton projet est-il bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    C:\Apps\eclipse\workspace\simple\samples\simple
    - dans ton projet as tu les répertoire
    - dans le répertoire racine as tu le build.xml ?

    Si tu as répondu OUI à toutes les questions vérifie si le répertoire de base spécifié dans Eclipse pour le build (Run external tools) est bien ton répertoire racine car il semble que Eclipse donne comme répertoire de base à ANT son propre répertoire ce qui explique qu'il cherche le fichier dans C:\Apps\eclipse\.\etc alors qu'il devrait aller le chercher dans C:\Apps\eclipse\workspace\simple\samples\simple\.\etc

    C'est une idée à suivre

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Août 2002
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 48
    Points : 46
    Points
    46
    Par défaut
    En effet, j'ai répondu "oui" à toutes tes questions :
    simple/samples/simple est bien la "base" réelle de mon projet (contient entre autre le build.xml, et les répertoires client/src et server/src qui sont à construire) et contient bien les répertoires recherchés.
    J'ai modifié comme tu l'as indiqué le Base Directory de ant pour le projet, malheureusement il semble l'ignorer pour une raison X ou Y. La plus logique à mon sens serait qu'il y a une faiblesse dans le build.xml, mais de prime abord, ça va être compliqué à montrer (beaucoup de propriétés). Je copie les élément du build.xml avec qq ajouts et la sortie correspondante, pour aider à y voir plus clair :
    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
    <target name="gen-server" depends="prepare"
              description="Runs wscompile to generate server artifacts">
        <echo message="Running wscompile...."/>
        <echo message="basedir=${basedir}"/>
        <echo message="app.classpath=${app.classpath}"/>
        <echo message="config.rpcenc.file=${config.rpcenc.file}"/>
        <echo message="build.home=${build.home}"/>
        <wscompile verbose="${jaxrpc.tool.verbose}" 
                   xPrintStackTrace="true"    
                   keep="true" fork="true" 
                   security="${server.security.config}"
                   import="true"
                   model="${build.home}/server/WEB-INF/${model.rpcenc.file}"
                   base="${build.home}/server/WEB-INF/classes"
                   classpath="${app.classpath}"
                   config="${config.rpcenc.file}">
          <classpath>
            <pathelement location="${build.home}/server/WEB-INF/classes"/>
            <path refid="app.classpath"/>
          </classpath>
        </wscompile>
      </target>
    La sortie associée:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    gen-server:
            [echo] Running wscompile....
            [echo] basedir=C:\Apps\eclipse\workspace\simple\samples\simple
            [echo] app.classpath=${app.classpath}
            [echo] config.rpcenc.file=C:\Apps\eclipse\workspace\simple\samples\simple/etc/config.xml
            [echo] build.home=build
       [wscompile] Erreur du modeleur : impossible d'analyser le document dans "./etc/PingService.wsdl" : java.io.FileNotFoundException: C:\Apps\eclipse\etc\PingService.wsdl (The system cannot find the path specified)
       [wscompile] 	at com.sun.xml.rpc.processor.modeler.wsdl.WSDLModelerBase.buildModel(WSDLModelerBase.java:276)
    On remarque alors qu'aucun classpath n'est défini, mais ce n'est pas forcément un drame, le contenu de bootstrap doit suffir.
    Par contre, on a un nouveau fichier xml dans l'action -> config.rpcenc.file=C:\Apps\eclipse\workspace\simple\samples\simple/etc/config.xml
    Voici son contenu :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <configuration xmlns="http://java.sun.com/xml/ns/jax-rpc/ri/config">
    <wsdl location="./etc/PingService.wsdl" 
          packageName="simple" /> 
    </configuration>
    Déjà c'est bien, on a trouvé notre fameuse ligne. Le problème, c'est qu'il n'étend pas les propriétés ant, pas moyen de lui faire avaler un ${base.dir}
    Je pourrais bien sûr lui mettre en dur, mais comme je l'ai dit, mon but est de ne pas modifier les fichiers de configuration... Si vous avez encore une idée pour qu'il comprenne que '.' est ${base.dir} et non pas ${workspace_loc}, je suis preneur

    Merci de ton aide, je comprends parfaitement que ce problème puisse sembler à la fois triviale pour certain, et difficile à appréhender pour d'autres, mais je pense que ce genre d'experience est bonne pour tous

  6. #6
    Membre habitué
    Inscrit en
    Octobre 2002
    Messages
    164
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 164
    Points : 190
    Points
    190
    Par défaut
    Des exemples que j'ai pu voir sur le Net, tous utilisent comme location de config.xml une requête HTTP pour récupérer le WSDL du type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    http://localhost:8080/EssaiCalculator/Calculator?WSDL
    Le fait que tu ne veuilles pas modifier le build est une bonne chose mais tu peux sans soucis modifier le config.xml puisqu'il s'agit justement d'un fichier de configuration propre à ton environnement projet. Du toutes les manières il te faudra bien modifier ce fichier de configuration pour lui faire avaler ton service.

    As tu essayer de lancer le build depuis une ligne de commande pour vérifier si il fonctionne dans ces conditions ?

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Août 2002
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 48
    Points : 46
    Points
    46
    Par défaut
    (Désolé pour le décalage de ma réponse, pas de connexion en dehors de lundi mardi mercredi )

    Un build lancé en ligne de commande fonctionne parfaitement.

    En effet, config.xml me semble l'endroit parfait pour indiquer les spécificités de ma configuration (et donc les corollaires à l'utilisation d'éclipse). Maintenant je pense avoir les éléments nécessaires pour exploiter mes exemples.

    Un grand merci à jIdJo pour ses conseils avisés et sa patience.

    Tag résolu!

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 21/06/2007, 18h48
  2. Réponses: 3
    Dernier message: 19/12/2006, 01h38
  3. Réponses: 3
    Dernier message: 21/08/2006, 11h31
  4. [Free Pascal] Intégrer des valeurs dans un menu dynamique
    Par boullery dans le forum Free Pascal
    Réponses: 16
    Dernier message: 30/03/2005, 17h04
  5. LYCOS ET MYSQL - Intégrer des images dans une base!
    Par archeo dans le forum Installation
    Réponses: 3
    Dernier message: 06/04/2004, 13h45

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