la classe taskdef com. sun. tools. ws. ant. WsImport ne peut pas être trouvée Après "Le tutoriel java web services"


J'ai vu le même problème dans de nombreux endroits différents et même après une bonne partie de la recherche sur Google, je n'ai pas pu le résoudre. Ce que j'essaie de faire (l'image plus grande), c'est de passer par Le tutoriel java web services , qui semble à certains moments désynchronisé,

Spécialement ici, lorsque j'essaie de compiler, j'obtiens le message suivant:

C:\javaeetutorial5\examples\jaxws\common\targets.xml: 26: classe taskdef com. sun. tools.ws.ant. WsImport ne peut pas être trouvé

J'ai essayé de nombreuses combinaisons différentes de placement de pots ou de modification de variables d'environnement, mais sans résultat. Des histoires réussies?

Le message d'erreur complet de construction est le suivant:

ÉCHEC DE LA CONSTRUCTION

C:\javaeetutorial5\examples\jaxws\helloservice\build.xml:4: L'erreur suivante s'est produite lors de l'exécution de cette ligne:

C:\javaeetutorial5\examples\jaxws\common\targets.xml: 26: taskdef Une classe requise par la classe com. sun. tools.ws.ant. WsImport introuvable: org/apache/tools/ant/DynamicConfigurator

Utilisation du chargeur de classe AntClassLoader[C:\Program Fichiers(x86)\Java\jdk1.6.0_23\lib \ outils.jar]

Durée Totale: 0 secondes

Et le taskdef:

<taskdef name="wsimport" classname="com.sun.tools.ws.ant.WsImport">
    <classpath refid="jaxws.classpath"/>
</taskdef>

Aussi un coup d'oeil dans le répertoire d'approbation:

C:\javaeetutorial5\kschneid>cd %JAVA_HOME%

C:\Program Files (x86)\Java\jdk1.6.0_23>dir lib\endorsed
 Volume in drive C is OSDisk
 Volume Serial Number is AAAA-BBBB

 Directory of C:\Program Files (x86)\Java\jdk1.6.0_23\lib\endorsed

25/02/2011  09:34    <DIR>          .
25/02/2011  09:34    <DIR>          ..
25/02/2011  09:34           105,134 jaxb-api.jar
25/02/2011  09:33            54,476 jaxws-api.jar
               2 File(s)        159,610 bytes
               2 Dir(s)  110,907,056,128 bytes free

C:\Program Files (x86)\Java\jdk1.6.0_23>
Author: Will, 2011-02-23

10 answers

Eh bien, apparemment, un lien vers un site Web avec la solution à ce problème est inacceptable, donc je vais coller la réponse ici:

<property name="BUILD_LIBS" location="C:/Projects/Build/Libs/" />

<taskdef name="wsimport" classname="com.sun.tools.ws.ant.WsImport">
    <classpath>
        <pathelement location="${BUILD_LIBS}/jaxws-ri/lib/jaxws-tools.jar"/>
    </classpath>
</taskdef>

Le problème est dû au jar jaxws pertinent ne se trouvant pas dans le chemin de classe voir le nœud pathelement ci-dessus. L'ajout du fichier jar au chemin de classe résout le problème.

 11
Author: , 2012-02-25 10:16:44

La tâche <wsimport> ant n'est pas incluse dans le JDK, même s'il existe un wsimport.exe qui fait exactement la même chose.

Si vous voulez vraiment la tâche ant, vous pouvez télécharger jaxws-ri et utiliser le 23(!) les bocaux dans le dossier lib.

Ou vous pouvez utiliser cette solution de contournement en appelant wsimport.exe :

<target name="generate-client" >
    <exec executable="${java.home}/../bin/wsimport">
        <arg line="-keep -d build/classes -p ebay.apis -s src -wsdllocation http://localhost:7070/Ebay?wsdl eBaySvc.wsdl"/>
    </exec>
</target>
 9
Author: Stroboskop, 2011-09-22 14:25:40

Vous pouvez résoudre le problème dans Netbeans x. y comme suit:

  1. Allez dans Outils->Options->Java->Ant.
  2. Cliquez sur "Ajouter JAR/ZIP..."sous la section Classpath
  3. Accédez à "C:\Program Les fichiers \ NetBeans x. y\enterprise \ modules \ ext \ metro \ "
  4. Sélectionnez tous les fichiers.
  5. Cliquez sur OK et réessayez l'importation/régénération.

Où x. y = 7.1, 7.2, 8.0 etc

 4
Author: Babatunde Adeyemi, 2015-11-25 13:40:03

Je soutiens pleinement le développement non -E, en particulier lorsque j'essaie d'apprendre quelque chose ;). Essayez de commencer avec ce fichier de construction simple (utilisez l'emplacement réel de votre installation JAX-WS RI):

<project name="jaxws-tutorial" default="wsimport">

    <property name="jaxws.home" location="D:/jaxws-ri-2_2_1"/>

    <path id="wsimport.classpath">
        <fileset dir="${jaxws.home}/lib" includes="jaxws-tools.jar"/>
    </path>

    <taskdef name="wsimport" classname="com.sun.tools.ws.ant.WsImport" classpathref="wsimport.classpath"/>

    <target name="wsimport">
        <wsimport>
            <arg value="-version"/>
        </wsimport>
    </target>

</project>

Si vous exécutez simplement ant , vous devriez voir une sortie comme celle-ci:

wsimport:
 [wsimport] Consider using <depends>/<produces> so that wsimport won't do unnecessary compilation
 [wsimport] JAX-WS RI 2.2.1-b01-

Puisqu'il semble que vous utilisiez Java 6, faites attention à "En cours d'exécution sur JDK6".

 3
Author: kschneid, 2011-02-24 18:39:03

Cela a fonctionné pour moi:

Je télécharge la bibliothèque JAVA-WS depuis site officiel Je l'ai mis sur le répertoire extra-lib. Ce répertoire est au même niveau de construction.XML. Sur le construire.xml je copie à partir de jaxws-build.xml la tâche Ant nommée "wsimport-init" et je la modifie comme dans le mode suivre:

...
    <target name="wsimport-init" depends="init">
        <mkdir dir="${build.generated.sources.dir}/jax-ws"/>
        <taskdef name="wsimport" classname="com.sun.tools.ws.Ant.WsImport">
            <classpath>
                <fileset dir="./extra-lib">
                    <include name="**/*.jar"/>
                </fileset>
            </classpath>
        </taskdef>
    </target>
...

Référence: http://www.staniscia.net/989-resolve-the-portable-problem-of-netbean-jax-ws-libraries-for-web-service-clients/

 2
Author: Akira Yamamoto, 2014-07-28 19:51:44

J'ai changé le classname="com.sun.tools.ws.ant.WsImport" à classname="com.sun.tools.ws.WsImport", ce qui a résolu ce problème pour moi.

 2
Author: Rahul Khimasia, 2015-10-09 01:41:53

J'ai trouvé une réponse qui ne me satisfait pas du tout: Installé netbeans qui prend soin de joindre les choses ensemble. Pourtant, la ligne de commande ne fonctionne pas (ce qui signifie qu'il est compartimenté l'environnement qui est bon). Je peux suivre le tutoriel, mais je crois toujours que tout devrait être fait à partir de la ligne de commande (y avait-il trop d'Unix dans mon alimentation?)

 0
Author: Dimitrios Mistriotis, 2011-02-24 09:31:22

Mieux encore, vous pouvez utiliser l'outil de ligne de commande wsimport pour générer le jar ou les fichiers

Http://docs.oracle.com/javase/6/docs/technotes/tools/share/wsimport.html

Générez les fichiers dans le dossier build / classes, vous pouvez ensuite le référencer à partir de là avec ant javac

 0
Author: JohnTheBeloved, 2014-07-12 15:31:24

Pour dépasser cette erreur, nous devons utiliser Outils->Options, cliquez sur Divers, et dans l'onglet Ant, utilisez Add Jar/ZIP pour localiser et ajouter les bibliothèques webservices-tools.jar et webservices-rt.jar dans le répertoire

 0
Author: Dvir Arad, 2015-10-27 11:42:51

Si vous utilisez Eclipse ID et que vous rencontrez ce problème, voici quelque chose qui a fonctionné pour moi. Allez à: Fenêtre > Préférences. Trouvez l'option Ant sur le côté gauche.

Développez-le et vous trouverez ANT Runtime. Sélectionnez cette option et vérifiez les fichiers jar inclus dans l'onglet Classpath.

Sélectionnez l'option Ajouter un pot externe. Allez maintenant dans le dossier ant home de votre système. Allez dans le dossier lib et ajoutez tous les fichiers jar / jar manquants.

Cela résoudra la dépendance manquante pour ant-construire.

J'Espère Que Ça Aide!

 0
Author: RishikeshD, 2016-09-14 09:17:07