Problem bei Build mit Ant - Cannot access ... file

Herr_M

Erfahrenes Mitglied
Hallo Zusammen,

Ich versuche gerade meinen WebService Client mittels ant zu kompilieren, leider klappt das nicht ganz:
Code:
Buildfile: C:\WSClient\build.xml
init:
compile:
     Compiling 4 source files to C:\WSClient\build
     C:\WSClient\src\de\avs\zanox\namespace\_2009_05_01\PublisherServiceStub.java:575: cannot access javax.wsdl.Definition
     file javax\wsdl\Definition.class not found
     		_serviceClient = new org.apache.axis2.client.ServiceClient(	configurationContext,
                                      ^
     Note: C:\WSClient\src\de\avs\zanox\namespace\_2009_05_01\PublisherServiceStub.java uses unchecked or unsafe operations.
     Note: Recompile with -Xlint:unchecked for details.
     1 error

BUILD FAILED
C:\WSClient\build.xml:42: Compile failed; see the compiler error output for details.

Total time: 890 milliseconds

Das Build File (build.xml) sieht so aus:
Code:
<?xml version="1.0" encoding="ISO-8859-2"?>

<project name="Zanox WS Client" default="jar" basedir=".">

	
    <!--
     - Initialisiert Konstanten für den weiteren Gebrauch in den anderen Tasks
    -->
    <target name="init">
        <property name="name_of_jar" value="zanox_ws_client.jar" />
        <property name="framework" value="./;./lib/axis2-adb-1.5.jar;./lib/axiom-api-1.2.8.jar;./lib/axis2-kernel-1.5.jar;./lib/axiom-impl-1.2.8.jar" />
        <property name="manifest" value="manifest.txt" />
        <property name="dir_src" value="src" />
        <property name="dir_build" value="build" />
        <property name="dir_javadoc" value="javadoc" />
        <property name="javadoc_zip" value="javadoc.zip" />
    </target>


    <!--
     - Löscht alle Dateien, die im Verlaufe eines Builds erzeugt wurden
     -
     - Das sind im Einzelnen die Verzeichnisse build und javadoc sowie die erzeugte
     - jar-Datei und die gepackte Javadoc
    -->
    <target name="clean" depends="init">
        <delete failonerror="false" dir="${dir_build}" />
        <delete failonerror="false" dir="${dir_javadoc}" />
        <delete failonerror="false" file="${name_of_jar}" />
        <delete failonerror="false" file="${javadoc_zip}" />
    </target>


    <!--
     - Kompiliert die Quelldateien:
     -
     - Erzeugen des build-Verzeichnisses
     - Aufrufen des Compilers, mit den Parametern Quellverzeichnis, Zielverzeichnis, Position des SalesPoint-Frameworks
    -->
    <target name="compile" depends="init">
        <mkdir dir="${dir_build}" />
        <javac srcdir="${dir_src}" destdir="${dir_build}" classpath="${framework}">
            <include name="**/*.java" />
        	<exclude name="**/ServiceTest.java" />
        </javac>
    </target>


    <!--
     - Erzeugt eine ausführbare Jar-Datei des Programms, diese enthält zusätzlich das SalesPoint-Framework:
     -
     - Entpacken der jar-Datei, die das SalesPoint-Framework enthält, ins build-Verzeichnis
     - Erstellen einer jar-Datei mit dem Inhalt des build-Verzeichnisses, es wird außerdem das
     - zu verwendende Manifest übergeben
    -->
    <target name="jar" depends="compile">
        <unjar dest="${dir_build}">
        	<fileset dir="." includes="${framework}" />
        </unjar>
        <jar compress="true" destfile="${name_of_jar}" manifest="${manifest}">
            <fileset dir="${dir_build}" />
        </jar>
    </target>


    <!--
     - Erzeugt Javadoc (inkl. des Verzeichnisses, in dem sie liegen soll) und packt sie
    -->
    <target name="javadoc" depends="init">
        <mkdir dir="${dir_javadoc}" />
        <javadoc packagenames="..."                 
                    header="Zanox Webservice Client"
                    windowtitle="Zanox Webservice Client API"               
                    sourcepath="${dir_src}"
                    classpath="${framework}"
                    destdir="${dir_javadoc}"
                    author="true"
                    version="false"
                    use="false"
                    additionalparam="-linksource">
            <link href="http://java.sun.com/j2se/1.4.2/docs/api/" />
            <link href="http://www-st.inf.tu-dresden.de/SalesPoint/v3.1/documentation/javadoc" />
        </javadoc>
        <zip destfile="${javadoc_zip}" basedir="." includes="${dir_javadoc}/**/*" />
    </target>


    <!--
     - Führt die via "ant jar" erzeugte jar-Datei aus (sprich: startet das Programm)
    -->
    <target name="run" depends="init">
        <java jar="${name_of_jar}" fork="true" />
    </target>

</project>

Die beim property "framework" angegebenen *.jar Dateien sind alle vorhanden und die axis2-kernel-1.5.jar behinhaltet auch die als "not found" angegebene Klasse "ServiceClient". Um das Ant Skript auszuführen nutze ich das Ant Plugin für Eclipse.

Benutze ich anstelle des Ant Skripts einfach die Export oder Kompilierfunktion von Eclipse, gibt es keine Probleme mit scheinbar fehlenden Jars oder Klassen.
 
Zuletzt bearbeitet:
Moin,

bin mir gar nicht sicher, dass es was mit dem ant-Script zu tun hat ...

Scheinbar findet er doch die Klasse "avax\wsdl\Definition" in der Datei "
C:\WSClient\src\de\avs\zanox\namespace\_2009_05_01\PublisherServiceStub.java" nicht ...

Ich würde vermuten, dass entweder da was falsch geschrieben ist oder die gesuchte Klasse steht nicht (richtig) im Classpath steht !

Gruß
Klaus
 
Hallo Klaus,

Hab schon auf derlei Fehler geprüft, und wie schon geschrieben, wenn ich anstelle des Ant Skripts zum kompilieren einfach nur Eclipse nehme Run -> Run As -> Java Application. Dann funktioniert das Kompilieren ohne Fehler und auch die Anwendung wird gestartet und funktioniert.
Also kann es ja nur an einem Fehler im Ant Skript liegen oder?
 
Hi,

welches ist denn genau die Zeile 42 ?

Wenn ich mich nicht verzählt habe, sollte es diese sein, oder ?
<javac srcdir="${dir_src}" destdir="${dir_build}" classpath="${framework}">

Dann würde ich mal diese Pfade (resp. deren Einstellungen) prüfen ...

Mehr fällt mir im Moment auch nicht ein - sorry

Gruß
Klaus
 
Hab die Lösung des Problems gefunden!

Code:
...
file javax\wsdl\Definition.class not found
...

Hab mal einen Kollegen gefragt, der kannte sich zwar auch nicht 100% aus, hatte dann aber glücklichweise den notwendige frischen Blick. Hab die oben genannte Zeile immer im Context zu den anderen gesehen... das war ein Fehler... ohne den Kontext ist mir dann wie Schuppen von den Augen gefallen. Ich hatte einfach die wsdl4j-1.6.2.jar im classpath / framwork vergessen. Eclipse verwendet diese Standarmäßig mit, weswgen es beim Testen und kompilieren keine Fehler gab. Ant hingegen nimmt diese nicht als Default mit :( Mann oh Mann, hab nen ganzen Nachmittag jetzt verplempert wegen dem Teil.... naja glücklicherwiese hat ich sowas schon geahnt und entsprechend Zeit eingeplant :)
 

Neue Beiträge

Zurück