Varrius Geschrieben 5. August 2005 Geschrieben 5. August 2005 Hi, ich bin derzeit dabei auf einem Tomcat Web-Server per Axis Web-Services zu erstellen. Für diesen Web-Service möchte ich nun einen Client erstellen. In einer Anleitung steht, ich kann dazu aus der WSDL des Service ein Java-Pojekt machen, um daraus ein Client zu machen. Mein Problem ist nun, das ich mehrere .jar Dateien benötige, aber ich per CLASSPATH irgendwie immer nur eine angeben kann ( arbeite unter Windows XP PRO). Ich versuche das in der CMD-Konsole mit diesem Befehl: java -cp d:\[tomcat-ordner]\webapps\axis\WEB-INF\lib org.apache.axis.wsdl.WSDL2Java http://localhost:8080/axis/Dienste.jsw?wsdl Nun kommt leider immer eine Fehlermeldung, das eine Klasse fehlt, welche aber in einer der .jar-Dateien in diesem Ordner ist. Weiss jemand was mein Fehler ist oder kennt andere Möglichkeiten, ich wäre euch zutiefst dankbar :uli MFG Varrius PS: Versionen (falls noch was interessant ist einfach fragen) Tomcat 5.0.29 J2SDK 1.4.2_06 Axis 1.2.1 Windows XP Pro Eclipse 3.0.1 Zitieren
perdian Geschrieben 5. August 2005 Geschrieben 5. August 2005 Nun kommt leider immer eine Fehlermeldung, das eine Klasse fehlt, welche aber in einer der .jar-Dateien in diesem Ordner ist.Lässt du uns raten, welche Klasse das wohl sein könnte, oder postest du auch die exakte Fehlermeldung? Wobei, wenn ich mir deinen Aufruf ansehe: Einfach das lib-Verzeichnis angeben reicht nur dann, wenn dort .class Dateien liegen. JARs müssen alle separat aufgeführt werden. Zitieren
etreu Geschrieben 5. August 2005 Geschrieben 5. August 2005 Du kannst auch mehrere Dateien und/oder Verzeichnisse als Classpath angeben. Diese werden ganz einfach unter Windows mit einem Semikolon getrennt. also: java -cp d:\[tomcat-ordner]\webapps\axis\WEB-INF\lib org.apache.axis.wsdl.WSDL2Java;d:\pfad\zur\nächsten\datei Zitieren
Varrius Geschrieben 8. August 2005 Autor Geschrieben 8. August 2005 @ perdi Wenn ich es so eingebe wie oben, kommt die Fehlermeldung, das ihm die org/apache/axis/wsdl/WSDL2Java Klasse fehlte, welche aber in der axis.jar ist. Sobald ich aber den Befehl: java -cp d:\[tomcat-ordner]\webapps\axis\WEB-INF\lib\axis.jar org.apache.axis.wsdl.WSDL2Java http://localhost:8080/axis/Dienste.jsw?wsdl eingebe, fehlt ihm die Klasse org/apache/commons/logging/LogFactory welche in der commons-logging-1.0.4.jar enthalten ist. @ Enrico T Ich habe das nun mit folgendem Befehl probiert: java -cp d:\[tomcat-ordner]\webapps\axis\WEB-INF\lib\axis.jar org.apache.axis.wsdl.WSDL2Java; d:[tomcat-ordner]\webapps\axis\WEB-INF\lib\commons-logging-1.0.4.jar http://localhost:8080/axis/Dienste.jsw?wsdl nun bekomme ich wieder die Fehlermeldung, das die Klasse org/apache/axis/wsdl/WSDL2Java nicht gefunden werden konnte. Ich hoffe ich konnte euch das so erklären wie ihr das braucht, damit ihr es mir erklären könnt MFG Varrius Zitieren
Varrius Geschrieben 8. August 2005 Autor Geschrieben 8. August 2005 hab das mit dem CLASSPATH hinbekommen, mehr oder weniger einfach: set CLASSPATH=d:\jakarta-tomcat-5.0.29\webapps\axis\WEB-INF\lib\axis.jar;d:\jakarta-tomcat-5.0.29\webapps\axis\WEB-INF\lib\commons-logging-1.0.4.jar;d:\jakarta-tomcat-5.0.29\webapps\axis\WEB-INF\lib\activation.jar;d:\jakarta-tomcat-5.0.29\webapps\axis\WEB-INF\lib\commons-discovery-0.2.jar;d:\jakarta-tomcat-5.0.29\webapps\axis\WEB-INF\lib\axis-ant.jar;d:\jakarta-tomcat-5.0.29\webapps\axis\WEB-INF\lib\jaxrpc.jar;d:\jakarta-tomcat-5.0.29\webapps\axis\WEB-INF\lib\log4j-1.2.8.jar;d:\jakarta-tomcat-5.0.29\webapps\axis\WEB-INF\lib\mail.jar;d:\jakarta-tomcat-5.0.29\webapps\axis\WEB-INF\lib\saaj.jar;d:\jakarta-tomcat-5.0.29\webapps\axis\ WEB-INF\lib\wsdl4j-1.5.1.jar leider bekomm ich nach dem Befehl "java org.apache.axis.wsdl.WSDL2Java http://localhost:8080/axis/Dienste.jws?wsdl" folgende Fehlermeldung: java.io.FileNotFoundException: http://localhost:8080/axis/Dienste.jsw?wsdl Wenn ich die Adresse in meinen Browser eingebe, bekomm ich aber eine WSDL Seite angezeigt, sie ist also verfügbar vielleicht hab ihr eine Idee was da falsch laufen könnte Varrius Zitieren
perdian Geschrieben 8. August 2005 Geschrieben 8. August 2005 leider bekomm ich [...] folgende Fehlermeldung: java.io.FileNotFoundException: http://localhost:8080/axis/Dienste.jsw?wsdlStacktrace?! lWenn ich die Adresse in meinen Browser eingebe, bekomm ich aber eine WSDL Seite angezeigtUnd du bist wirklich sicher, dass die URL beide male diegleiche und die restlichen Parameter für wsdl2java okay sind? Zitieren
Varrius Geschrieben 9. August 2005 Autor Geschrieben 9. August 2005 hi, muss wohl doch was falsch geschrieben haben, habe nun den Befehl eingegeben und die Adresse aus dem Browser kopiert und es hat nun geklappt Vielen Dank an euch beide, wenn ich wieder Fragen hab, meld ich mich hier, MFG Varrius Zitieren
Varrius Geschrieben 9. August 2005 Autor Geschrieben 9. August 2005 so und es geht doch weiter habe nun aus den .java Dateien Klassen gemacht und wollt nun testen, ob der Client funktioniert. Ich habe dazu folgenden Befehl eingegeben: D:\DiensteClient>java DiensteClient Die Fehlermeldung dazu lautet wie folgt: Exception in thread "main" java.lang.NoClassDefFoundError: DiensteClient Allerdings liegt die DiensteClient.class im aktuellen Ordner, deswegen versteh ich den Sinn der Fehlermeldung nicht ganz. Ich hoffe ihr habt einen Ansatz oder sogar eine Lösung für mich MFG Varrius Zitieren
etreu Geschrieben 9. August 2005 Geschrieben 9. August 2005 Ist die Klasse public? Ist ein package in der Klasse angeben? Zitieren
Varrius Geschrieben 9. August 2005 Autor Geschrieben 9. August 2005 hi, die Klasse ist public deklariert, aber gehört zu keinem Package, sie enthält ausserdem: import localhost.axis.Dienste_jws.*; In der Klasse werden Objekte einer anderen Klasse erzeugt, welche in einem Paket enthalten ist, alle Klassen dieses Paketes haben folgende Zeile: package localhost.axis.Dienste_jws; Die Klassen des Packages wurden durch den WSDL2Java Befehl erzeugt, während ich dann die DiensteClient erstellt habe. MFG Varrius Zitieren
Varrius Geschrieben 9. August 2005 Autor Geschrieben 9. August 2005 hab es nun mit folgendem Befehl versucht: java -cp . DiensteClient damit er den aktuellen Pfad als Basisverzeichnis nimmt, leider kommt dann der folgende Fehler: Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/rpc/Service wobei die javax.xml.rpc.Service nur von einer Klasse aus dem Package verwendet wird. Ich vermute nun, das er alles richtig findet, nur die .jar Dateien, welche im CLASSPATH gespeÃchert sind, werden durch das -cp nicht mehr genutzt. Werde noch ein wenig daran rumtesten, falls euch ein Fehler auffällt oder ihr ne Lösung habt, einfach melden edit: hab's geschafft hab mit java -cp [alle .jars von oben];[Pfad der .class Datei] (auszuführende Klass) nun meine Funktion aufgerufen Zitieren
etreu Geschrieben 9. August 2005 Geschrieben 9. August 2005 Wenn du den CLASSPATH wie oben angegeben, eingegeben hast, dann hast du alles was drin stand (die Pfade zu den eigentlichen Bibliotheken) gelöscht. Passiert nicht mit: set CLASSPATH = "%CLASSPATH%; ...." Ausserdem, sind denn die Klassen schon compiliert? Zitieren
Varrius Geschrieben 9. August 2005 Autor Geschrieben 9. August 2005 mein set CLASSPATH ist halt ziemlich lang, aber es funktioniert die Klassen hatte ich vorher mit Eclipse kompiliert, leider fand ich keine Möglichkeit unter Eclipse die von mir erstellte Klasse auszuführen aber wie gesagt, es funktioniert soweit erstmal Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.