Zum Inhalt springen

Wie aus WSDL ein Java-Projekt machen?


Empfohlene Beiträge

Geschrieben

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

Geschrieben
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.

Geschrieben

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

Geschrieben

@ 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

Geschrieben

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

Geschrieben

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

Geschrieben

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

Geschrieben

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

Geschrieben

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

Geschrieben

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?

Geschrieben

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 ;)

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...