J'ai vu le même problème dans de nombreux endroits et même après une bonne partie de recherche sur Google, je ne pouvais pas le résoudre. Ce que j'essaie de faire (la vue d'ensemble) est de passer par Le tutoriel sur les services Web Java , qui semble en des points désynchronisés,
Spécialement ici , lorsque j'essaie de compiler, je reçois le message suivant:
C:\javaeetutorial5\exemples\jaxws\common\cibles.xml: 26: taskdef classe com.Sun.tools.ws.ant.WsImport introuvable.
J'ai essayé de nombreuses combinaisons différentes de placement de bocaux ou de modification de variables d'environnement, mais sans résultat. Des histoires réussies?
Le message d'erreur de version complète est le suivant:
ÉCHEC DE 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\exemples\jaxws\common\cibles.xml: 26: taskdef Classe requise par la classe com.Sun.tools.ws.ant.WsImport introuvable: org/Apache/tools/ant/DynamicConfigurator
en utilisant le chargeur de classes AntClassLoader [C:\Program Files (x86)\Java\jdk1.6.0_23\lib\tools.jar]
Temps total: 0 secondes
Et le taskdef correspondant :
<taskdef name="wsimport" classname="com.Sun.tools.ws.ant.WsImport">
<classpath refid="jaxws.classpath"/>
</taskdef>
Jetez également un coup d'œil au répertoire des endossements:
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>
Eh bien, apparemment, un lien vers un site Web avec la solution de ce problème est inacceptable, je vais donc 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 fait que jaxws jar ne se trouve 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.
La tâche <wsimport>
ant n'est pas incluse dans le JDK, même s'il existe un fichier 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 les 23 (!) Jars du 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>
Vous pouvez résoudre le problème dans Netbeans x.y comme suit:
où x.y = 7.1, 7.2, 8.0 etc.
Je soutiens pleinement le développement non-IDE, 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 RI JAX-WS):
<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 venez d'exécuter 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-
Comme il semble que vous utilisiez Java 6, faites attention à "Running on JDK6" .
Cela a fonctionné pour moi:
Je télécharge la bibliothèque Java-WS à partir du site officiel Je la mets dans un répertoire extra-lib. Ce répertoire est au même niveau que build.xml. Sur build.xml, je copie depuis jaxws-build.xml la tâche Ant nommée "wsimport-init" et je la modifie comme dans le mode suivant:
...
<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>
...
J'ai changé le classname="com.Sun.tools.ws.ant.WsImport"
en classname="com.Sun.tools.ws.WsImport"
, ce qui a corrigé ce problème pour moi.
Pour surmonter cette erreur, nous devons utiliser Outils-> Options, cliquer sur Divers et, dans l'onglet Ant, utiliser Ajouter un fichier JAR/Zip pour localiser et ajouter les bibliothèques webservices-tools.jar et webservices-rt.jar. dans le répertoire
J'ai trouvé une réponse qui ne me satisfait pas du tout: Netbeans installés qui s'occupe de réunir les choses. Néanmoins, la ligne de commande ne fonctionne pas (cela signifie donc que l'environnement est compartimenté, ce qui est bon). Je peux suivre le tutoriel, mais je crois toujours que tout devrait être fait en ligne de commande (y-avait-il trop d'Unix dans mon régime?)
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érer les fichiers dans le dossier build/classes, vous pouvez ensuite le référencer à partir de là avec ant javac
Si vous utilisez Eclipse IDE et que vous êtes confronté à ce problème, voici quelque chose qui a fonctionné pour moi. Allez à: Fenêtre> Préférences. Recherchez l'option Ant située à 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 conteneur externe. Maintenant, allez dans le dossier d'accueil Ant dans 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-build.
J'espère que cela pourra aider!