Я пытаюсь использовать задачу ant-java2wsdl ant для создания wsdl из одного из моих классов java, но я не могу получить правильный путь к классам.
Я использую пакет libaxis-java Ubuntu, который устанавливает axis-ant.jar в $ ANT_HOME / lib и axis.jar в / usr / share / java. Интересные части моего build.xml выглядят так:
<property name="library.dir" value="lib"/>
<property name="system.library.dir" value="/usr/share/java"/>
<path id="libraries">
<fileset dir="${library.dir}">
<include name="*.jar"/>
</fileset>
<fileset dir="${system.library.dir}">
<include name="*.jar"/>
</fileset>
</path>
<target name="genwsdl" depends="compile">
<taskdef resource="axis-tasks.properties" classpathref="libraries"/>
<axis-java2wsdl>
details omitted
</axis-java2wsdl>
</target>
Запуск ant genwsdl
Результат:
/build.xml:50: taskdef A class needed by class
org.apache.axis.tools.ant.wsdl.Wsdl2javaAntTask
cannot be found: org/apache/axis/utils/DefaultAuthenticator
Ant может найти определение задачи axis-java2wsdl, потому что axis-ant.jar находится в $ ANT_HOME / lib, но не может найти классы в axis.jar, даже если этот jar находится на пути, определенном "библиотека"
Я знаю, что это проблема пути к классам, потому что я смог обойти DefaultAuthenticator для другого класса, не найденного с помощью символической ссылки axis.jar в $ ANT_HOME / lib. Как я могу заставить taskdef распознавать jar-файлы в / usr / share / lib или в локальном каталоге lib моего проекта, не вставляя все ссылки в $ ANT_HOME / lib?
EDIT:
Я наконец смог успешно сгенерировать wsdl с этой строкой:
ant -lib /usr/share/java/axis.jar -lib /usr/share/java/jaxrpc.jar -lib /usr/share/java/wsdl4j.jar -lib /usr/share/java/commons-logging.jar -lib /usr/share/java/commons-discovery.jar -lib build genwsdl
Я все равно буду очень признателен, если кто-нибудь скажет мне, что я делаю неправильно, не имея возможности определить эти библиотеки в build.xml