WSDL Java C#

Generic1

Top Contributor
Hallo,

ich habe eine WSDL vorliegen (die Applikation dahinter wurde mit C# programmiert) und möchte mit einem Java- Client darauf zugreifen.
Weiß jemand ob das so ohne weiteres funktioniert.
Die von der WSDL angebotenen Methoden liefern teilweise nicht nur primitive Datentypen zurück sondern auch Objekte -> und da liegen meine Bedenken.

Einen "normalen" Java- Client zu machen, das ist mir klar wie das geht, einfach Eclipse anwerfen, Wizard durchklicken und fertig, das dürfte nicht das Problem sein und hab ich auch schon einige male gemacht aber wie ist es eben mit den return Objekten?

lg
 

DerFeivel

Bekanntes Mitglied
Die in der WSDL definierten Objekte setzen sich ja wiederum auch nur aus primitiven Typen zusammen.
Dementsprechend werden einem dann mit wsimport (den Wizard hab ich leider nie benutzt) mit die entsprechenden JaxB-Klassen erzeugt.
 

fastjack

Top Contributor
Wir hatten bei Listen von Objekten damals erhebliche Schwierigkeiten unter .net. Die Kombination war Java/Tomcat/Axis -> WSDL -> 3.3/3.4 .net Client. Der .net Codegenerator hat Objektlisten schrott generiert, sodaß der Client immer Null empfangen hat.
 
P

Pippl

Gast
Antwort: JA, es geht ohne Probleme (vl wenn mans das erste mal macht hier und da ein paar Ecken, aber naja gibts ja immer)

Wir haben in der Firma unser Framework für Client/Server Anwendungen von Java auf C# konvertiert - mit Sharpen - (um beides anbieten zu können). Aber für automatische Tests bzw. Lasttest verwenden wir noch das Test-Framework welches in Java geschrieben ist. Da funktioniert die Kommunikation mit dem C# Service ohne Probleme (mehrere komplexe Objekte werden verschickt).
 

Generic1

Top Contributor
Besten Dank für die Antworten, jetzt hätte ich noch eine Frage.
Ich hab mir jetzt den WS- Client mit Netbeans (JAX-WS) erzeugt - der Code wurde generiert ohne Fehler.
Mit SOAP UI kann ich auf den WS einwandfrei zugreifen.
Ich weiß jetzt aber nicht, wie ich mich programmatisch mit dem WS im WS- Client verbinde.
Gaming heißt der WS und daher gibt es auch eine Java- Klasse "Gaming". Ich bin jetzt mal hergegangen und hab ein Objekt von Gaming erzeugt und wollte dann create aufrufen. aber create verlangt ein QName Objekt und ich hab keine Ahung was da verlangt wird:
Java:
Gaming g = new Gaming();
QName qName = new QName("da soll irgend ein String hergehören, k.a. welcher");
g.create(qName);

Meine Frage wäre wie mal bei einem Zugriff auf einen WS am WS- Client vorgeht bzw. kennt jemand ein Tut wo das drinnsteht wie das mit Netbeans geht.

Das müsste ja so passen, dass ich einfach ein Objekt vom WS mache, dann create aufrufe, oder?
Was mich ein bisschen stutzig macht ist, dass es ausser den createMethoden und getServicePort() keine Methoden in Gaming gibt, dafür gibt es andere Java- Klassen, in denen dann die Methoden des WS enthalten sind.

Vielleicht kann mir jemand auf die Sprünge helfen.
Vielen Dank,
 

DerFeivel

Bekanntes Mitglied
Create ist eine Methode der Klasse Service von der dein Client erbt.

Diese dient dazu Services entsprechend einer WSDL-Location und eines Servicenamens zu erzeugen.
Diese Funktionalität wird aber bereits durch deine Klasse "Gaming" bereitgestellt, welche dir eine Instanz eines Services mit den in der WSDL hinterlegten Daten erzeugt.
(wenn du dir die Klasse ansiehst, wirst du im Konstruktor von Gaming einen Aufruf a la:"super(wsdlLocation,serviceName)" sehen)




Um jetzt eine Funktion deines Webservices aufrufen, muss dein Programm aber nicht nur wissen WO (=wsdlLocation) der Service liegt und WIE(=serviceName) er heisst.
Er muss zusätzlich wissen, welches Protokoll er für den Aufruf verwenden soll. Gegeben durch das Binding, welches über die in der WSDL hinterlegten Ports zur definiert sind.

Auf diesem Port (Ort,Name,Protokoll sind jetzt bekannt) kannst du dann die Methode deines Webserivces aufrufen.

Ist zwar sachlich jetzt nicht 100% richtig. Aber ich hoffe es wird zumindest klar, was dir gerade noch fehlt.

Beispiel:

Gaming gamingServiceProxy = new Gaming(); // <--Service-Proxy...wo liegt der Service und wie heisst er
GamingService gamingServicePort = gamingServiceProxy.getGamingSOAP(); // <--SOAP-Port...benutzer das SOAPProtokoll für die Anfrage
DoSomethingResponseObject response = gamingServicePort.doSomething(); // <--Methode deines Webservices...Eine Anfrage für die Webservice-Methode DoSomething wird jetzt also mit dem SOAPBinding an die "Standard-URL" des Webservices gesendet


Wenn ich nachher noch Zeit habe, schreib ichs vielleicht nochmal ausführlicher.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D [SOAP] wsdl & maven & java 1.8 SOA 6
E wsdl into Java-Klassen Maven-Plugin SOA 2
N Java -> WSDL char mit max-Length SOA 5
P WSDL Generierung mit Axis 2 falsch? SOA 3
M Fehlermeldung beim Einbinden der wsdl in SoapUI invalid__wsdl SOA 10
N WSDL verändern der deploy loacation SOA 2
B Was ist falsch an meiner WSDL Datei? SOA 2
Z WSDL, Apache CXF und soapUI SOA 9
N Webservice Einbinden wsdl SOA 7
E WSDL Exception mit SOAPUI SOA 4
J Wie kann ich meine WSDL Datei kommentieren? SOA 2
R JAXB bzw. JAX-WS WSDL-Generierung SOA 2
G WebService WSDL SOA 3
B WSDL-Datei Funktionsnamen falsch SOA 2
G WSDL namespace schemaLocation SOA 2
G WebService mit wsdl erstellen SOA 4
H Axis2 dynamische URL zu WSDL SOA 2
P WSDL: Wie definiert man eine Nachricht ohne Übergabeparameter? SOA 10
AndyHa XSD in WSDL wird nicht kompiliert SOA 4
G Stub generieren (WSDL=Axis1.4) (WSDL2JAVA=Axis2) SOA 11
S WSDL xml invalid SOA 1
N Request-XML-String -> AXIS2 -> WSDL-Check -> Respon SOA 2
I SOAP WSDL und UDDI SOA 12
L webservice frage (eclipse/wtp, wsdl) SOA 12
B REST - es gibt eine REST API, wie mache ich nun in JAVA weiter? SOA 8
J SOA WebService JAX-WS Java-Klasse per wsimport generieren lassen SOA 3
S Java EE 7 Tutorial unvollständig? SOA 0
M JAVA Webservice Währungsrechner DRINGEND Hilfe SOA 1
P Java Webservice mit JWS Bindingnamen customizen SOA 4
E Webservice durch Java ansprechen SOA 7
J REST mit java client und php server SOA 22
T Mehrdimensionale Objekte in WebServices für Nicht-Java SOA 4
A PHP WebService aus Java aufrufen SOA 2
C Problem mit Java Webservice - SOAPBinding.Style - Wrapper class fehlt SOA 1
T Krankes Vorhaben: Von VB auf Java Webservice SOA 10
G Webservice mit Java aufrufen SOA 2
O brauche hilfe bei java/webservice geschichte SOA 29

Ähnliche Java Themen

Neue Themen


Oben