axis-java2wsdl ant タスクを使用して、Java クラスの 1 つから wsdl を作成しようとしていますが、クラスパスを正しく取得できません。
axis-ant.jar を $ANT_HOME/lib に、axis.jar を /usr/share/java にインストールする Ubuntu の libaxis-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
axis-ant.jar が $ANT_HOME/lib にあるため、Ant は axis-java2wsdl タスクの定義を見つけることができますが、その jar が「ライブラリ」によって定義されたパス上にあるにもかかわらず、axis.jar でクラスを見つけることができません。
axis.jarを$ ANT_HOME / libにシンボリックリンクすることで、DefaultAuthenticatorを通過して他のクラスが見つからなかったので、これがクラスパスの問題であることはわかっています。すべてを $ANT_HOME/lib にシンボリックリンクすることなく、/usr/share/lib またはプロジェクトのローカル lib ディレクトリにある jar ファイルを taskdef に認識させるにはどうすればよいですか?
編集:
最終的に、次の行で 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でこれらのライブラリを定義できないことで私が間違っていることを誰かが教えてくれれば、私はまだ非常に感謝しています