Я пытаюсь использовать задачу axis-java2wsdl ant для создания wsdl из одного из моих классов java, но я не могу получить правильный путь к классу.
Я использую Ubuntu libaxis-java-пакет, который устанавливает ax- 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, хотя эта банка включена путь, определенный "библиотеками"
Я знаю, что это проблема с classpath, потому что мне удалось пропустить DefaultAuthenticator другому классу, не найденному symlinking axis.jar в $ANT_HOME/lib. Как я могу получить taskdef для распознавания файлов jar в каталоге /usr/share/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