Taskdef class com.sun.tools.ws.ant.WsImport не может быть найден. Следуя "Учебному курсу java web services",

Я видел ту же проблему во многих разных местах и ​​даже после хорошей части поиска в Google, я не мог ее решить. То, что я пытаюсь сделать (более крупная фотография), - это пройти Учебное пособие по веб-сервисам java, которое кажется не в синхронизации,

Специально здесь, когда я пытаюсь скомпилировать, я получаю следующее сообщение:

C:\javaeetutorial5\examples\jaxws\common\objects.xml: 26: класс taskdef com.sun.tools.ws.ant.WsImport не найден

Я пробовал много разных комбинаций размещения банок или переменных переменных среды, но без результата. Любые успешные истории?

Полное сообщение об ошибке сборки следующее:

СТРОГО НЕИСПРАВНО

C:\javaeetutorial5\examples\jaxws\helloservice\build.xml: 4: При выполнении этой строки произошла следующая ошибка:

C:\javaeetutorial5\examples\jaxws\common\objects.xml: 26: taskdef Нельзя найти класс, необходимый классу com.sun.tools.ws.ant.WsImport: org/apache/tools/ ant/DynamicConfigurator

с помощью classloader AntClassLoader [C:\Program Files (x86)\Java\jdk1.6.0_23\lib\tools.jar]

Общее время: 0 секунд

И соответствующий taskdef:

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

Также загляните в каталог одобрения:

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>

Ответ 1

Ну, видимо, ссылка на веб-сайт с решением к этой проблеме неприемлема, поэтому я вставлю здесь ответ:

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

Проблема связана с тем, что соответствующая jaxws jar не находится в пути к классу, см. выше раздел pathelement node. Добавление jar в путь класса устраняет проблему.

Ответ 2

Вы можете устранить проблему в Netbeans x.y следующим образом:

  • Перейдите в Инструменты- > Параметры- > Java → Ant.
  • Нажмите "Добавить JAR/ZIP..." в разделе Classpath
  • Перейдите к "C:\Program Files\NetBeans x.y\enterprise\modules\ext\metro \"
  • Выберите все файлы.
  • Нажмите "ОК" и повторите попытку импорта/восстановления.

где x.y = 7.1, 7.2, 8.0 и т.д.

Ответ 3

Задача <wsimport> ant не включена в JDK, хотя есть файл wsimport.exe, который делает то же самое.

Если вы действительно хотите задачу ant, вы можете загрузить jaxws-ri и использовать 23 (!) банки в папке lib.

Или вы можете использовать это обходное решение, вызывая 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

Я полностью поддерживаю разработку, отличную от IDE, особенно при попытке узнать что-то;). Попробуйте начать с этого простого файла сборки (используйте фактическое местоположение вашей установки 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>

Если вы просто запустили ant, вы должны увидеть некоторый вывод, как показано ниже:

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

Поскольку похоже, что вы используете Java 6, обратите внимание на "Запуск на JDK6" .

Ответ 5

Это сработало для меня:

Я загружаю библиотеку JAVA-WS из Я поместил его в каталог ext-lib. Этот каталог находится на одном уровне build.xml. На build.xml я копирую из jaxws-build.xml задачу Ant с именем "wsimport-init", и я изменяю ее как в следующем режиме:

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

Ссылка: http://www.staniscia.net/989-resolve-the-portable-problem-of-netbean-jax-ws-libraries-for-web-service-clients/

Ответ 6

Я изменил classname="com.sun.tools.ws.ant.WsImport" на classname="com.sun.tools.ws.WsImport", который исправил эту проблему для меня.

Ответ 7

Я нашел ответ, который меня совсем не удовлетворяет: Установленные netbeans, которые заботятся о совместном соединении. Тем не менее, командная строка не работает (это означает, что она разделена на окружающую среду, которая хороша). Я могу следить за учебником, но я все же считаю, что все должно быть сделано из командной строки (было ли слишком много Unix в моей диете?)

Ответ 8

Еще лучше, вы можете использовать инструмент командной строки wsimport для создания баннера или файлов

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

сгенерируйте файлы в папку build/classes, затем вы можете ссылаться на нее с помощью ant javac

Ответ 9

Чтобы пройти эту ошибку, нам нужно использовать Tools- > Options, нажмите "Разное", а на вкладке Ant используйте "Добавить Jar/ZIP", чтобы найти и добавить библиотеки webservices-tools.jar и webservices-rt.jar в каталоге

Ответ 10

Если вы используете Eclipse IDE и сталкиваетесь с этой проблемой, вот что-то, что сработало для меня. Перейдите в меню "Окно" > "Настройки". Найдите параметр Ant с левой стороны.

Разверните его, и вы найдете Ant Runtime. Выберите эту опцию и проверьте банки, включенные на вкладку Classpath.

Выберите опцию Add External Jar. Теперь перейдите в домашнюю папку Ant в вашей системе. Перейдите в папку lib и добавьте все файлы jars/missing jar.

это приведет к разрешению отсутствующей зависимости для ant -build.

Надеюсь, что это поможет!

Ответ 11

У меня возникла та же проблема после тестирования Netbeans 11 и возврата к Netbeans 8.2. Решением стал файл

ProjectName\nbproject\private\private.properties

у этого была запись

user.properties.file=XXXX\\AppData\\Roaming\\NetBeans\\11.0\\build.properties

вернув его к правильной установке

user.properties.file=XXXX\\AppData\\Roaming\\NetBeans\\8.2\\build.properties

решил проблему. Для некоторых проектов NetBeans выскочил диалоговое окно "ProjectName проекта использует build.properties из другой установки NetBeans", затем нажмите "Использовать эту установку".