2011-02-23 25 views
14

Vi el mismo problema en muchas ubicaciones diferentes e incluso después de una buena porción de Google, no pude resolverlo . Lo que estoy tratando de hacer (la imagen más grande) es ir a través The java web services tutorial, lo que parece en los puntos fuera de sincronía,taskdef class com.sun.tools.ws.ant.WsImport no se puede encontrar A continuación "The java web services tutorial"

Especialmente here, cuando intento compilar, obtengo el siguiente mensaje:

C: \ javaeetutorial5 \ ejemplos \ jaxws \ common \ targets.xml: 26: clase taskdef com.sun.tools.ws.ant.WsImport no se puede encontrar

I han intentado muchas combinaciones diferentes de la colocación de los tarros o cambiando variables de entorno, pero sin resultado. ¿Alguna historia exitosa?

El mensaje de error de generación completa es la siguiente:

BUILD FAILED

C: \ javaeetutorial5 \ ejemplos \ jaxws \ HelloService \ build.xml: 4: Se produjo el siguiente error durante la ejecución de esta línea :

C: \ javaeetutorial5 \ examples \ jaxws \ common \ targets.xml: 26: taskdef Una clase necesitada por la clase com.sun.tools.ws.ant.WsImport no se puede encontrar: org/apache/tools/ant/DynamicConfigurator

utilizando el cargador de clases AntClassLoader [C: \ Archivos de programa (x86) \ Java \ jdk1.6.0_23 \ lib \ tools.jar]

Tiempo total: 0 segundos

y la correspondiente taskdef:

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

también una ojeada en el directorio de respaldo:

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> 
+0

¿Cómo se ve tu ''? Incluye el classpath que estás usando. – kschneid

+0

@kschneid. Lo siento por no incluir todos los detalles. Como muchas personas comienzan con este tutorial, pensé que encontraríamos los mismos obstáculos. Actualizando –

+0

... y ¿cómo se define 'jaxws.classpath'? – kschneid

Respuesta

0

Encontré una respuesta que no me satisface del todo: Netbeans instalados que se encargan de unir las cosas. Aún así, la línea de comando no funciona (lo que significa que está compartimentalizado el entorno, lo cual es bueno). Puedo seguir el tutorial, pero sigo creyendo que todo debe hacerse desde la línea de comandos (¿hubo demasiado Unix en mi dieta?)

+0

, creo que tengo la misma experiencia. Esperaba simplemente usar el build.xml de hormiga creado por netbeans para crear mi ws que depende de otros ws. pero estoy teniendo este problema a continuación. Me encantaría saber si resolvió su situación. – simgineer

+0

Lamentablemente tuve que abandonar el proyecto (educativo), esta es la razón por la que no he elegido una respuesta hasta ahora. Lo que obtuve de esto es que la documentación en el sitio de Sun está desactualizada. En algunos escenarios de consumo que encontré más adelante, utilicé interfaces RESTful, por lo que no tuve la necesidad de detenerme en los servicios web. Se actualizará cuando algo cambie ... –

3

Apoyo completamente el desarrollo sin IDE, especialmente cuando trato de aprender algo;) Trate de comenzar con este simple fichero de construcción (usar la ubicación real de su JAX-WS RI instalar):

<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 sólo ejecuta ant, debería ver alguna salida como la siguiente:

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

Dado que parece que está utilizando Java 6, preste atención a "Running on JDK6".

+0

Siento que estoy cerca, pero todavía no (agregué cómo se ve la ubicación del endoso en el cuerpo de la pregunta anterior), tengo el siguiente resultado: BUILD FAILED c: \ javaeetutorial5 \ kschneid \ build.xml: 9: taskdef Una clase necesitada por la clase com.sun.tools.ws.ant.WsImport no se puede encontrar: org/apache/tools/ant/DynamicConfigurator usando el cargador de clases AntClassLoader [C: \ Sun \ jaxws-ri \ lib \ jaxws-tools.jar; C: \ Sun \ jaxws-ri \ lib \ jaxws-rt.jar; C: \ Sun \ jaxws-ri \ lib \ jaxws-api.jar; C: \ Sun \ jaxws- ri \ lib \ jsr181-api.jar; C: \ Sun \ jaxws-ri \ lib \ jsr250-api.jar; C: \ Sun \ jaxws-ri \ lib \ saaj-api.jar; ...] Tiempo total: 0 segundos –

11

Bueno, al parecer un enlace a un sitio web con el solution a este problema es inaceptable, así que voy a pegar la respuesta aquí:

<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> 

La cuestión es relevante debido a la jaxws tarro de no estar en el class path ver el nodo pathelement arriba. Agregar el jar al classpath resuelve el problema.

+13

ya que el enlace de la solución ahora es un callejón sin salida, ¡es bueno que pongas el código aquí! –

8

La tarea ant <wsimport> no está incluida en el JDK, aunque hay un wsimport.exe que hace exactamente lo mismo.

Si realmente desea la tarea ant, puede descargar jaxws-ri y usar los 23 (!) Jar en la carpeta lib.

O bien, puede utilizar esta solución llamando 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> 
4

puede solucionar el problema en Netbeans xy de la siguiente manera:

  1. vaya a Herramientas-> Opciones-> Java-> Ant.
  2. Haga clic en "Agregar archivo JAR/ZIP ..." en la sección de rutas de clases
  3. Vaya a "C: \ Archivos de programa \ NetBeans Enterprise \ módulos x.y \ \ ext \ metro \"
  4. Seleccionar todos los archivos.
  5. Haga clic en Aceptar e intente importar/regenerar nuevamente.

donde x.y = 7.1, 7.2, 8.0, etc.

+0

Actualmente no tenemos los recursos para verificar, ¿podría alguien más con el mismo problema intentar e informar? –

+0

¿No tiene los recursos para verificar qué? –

+0

No tengo tiempo de verificar tu solución para ver si es verdadera (descargar Netbeans instálala y sigue los pasos). Si alguien más puede confirmarlo, puedo elegir la respuesta correcta :-) –

2

Esto funcionó para mí:

que descargar la biblioteca de Java-WS de official site lo puse en el directorio extra-lib. Este directorio está en el mismo nivel de build.xml. En build.xml copio de jaxws-build.xml la tarea Ant llamada “wsimport-init” y modifico como en el modo de seguimiento:

... 
    <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> 
... 

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

2

Cambié el classname="com.sun.tools.ws.ant.WsImport" al classname="com.sun.tools.ws.WsImport", que me solucionó este problema.

0

Para superar este error tenemos que utilizar Herramientas> Opciones, haga clic en Varios, y en el uso pestaña Ant Añadir Jar/postal para localizar y añadir las bibliotecas webservices-tools.jar y webservices-rt.jar en el directorio

0

Si está usando Eclipse IDE y enfrentando este problema, aquí hay algo que funcionó para mí. Vaya a: Ventana> Preferencias. Encuentra la opción Ant en el lado izquierdo.

Extiéndalo y encontrará ANT Runtime. Seleccione esa opción y verifique los archivos incluidos en la pestaña Classpath.

Seleccione la opción Agregar jar externo. Ahora ve a la carpeta de inicio de la hormiga en tu sistema. Vaya a la carpeta lib y agregue todos los archivos jar/missing jar.

Esto resolverá la dependencia faltante para ant-build.

Hope that Helps!

Cuestiones relacionadas