# Webservice durch Java ansprechen



## erazor2106 (1. Nov 2011)

Hallo Leute,

ich habe schon hier im Forum geschaut und auch bei Google aber noch nichts passendes (für meinen Wissensstand  ) gefunden.

Ich möchte nur ein ganz einfach gestricktes Java programm schreiben, welches einen Webservice anspricht. Zur Verfügung steht mir die URL der WSDL-Datei.

http:// ... /testservice?wsdl

Dort gibt es t.b. eine getData Funktion welche ich gern ansprechen würde. Ich habe es aber bisher mit den Anleitung nicht hinbekommen und bin auch noch Anfänger auf diesem Gebiet.

Könnte mir hier vllt. jemand erklären wie der aufbau strukturiert sein muss?

VIelen Dank und viele Grüße erazor2106


----------



## eRaaaa (1. Nov 2011)

Java Klassen generieren, Methode aufrufen und gut 
Alles beschrieben hier

Das wsimport kann dir eine gute Entwicklungsumgebung abnehmen


----------



## erazor2106 (4. Nov 2011)

Danke für die Antwort. Es läuft jetzt so einigermaßen. Aber ich  hätte mal noch ne grundlegende Frage. Undzwar zum direkten Aufruf des Services:

in der wsdl-Datei steht:


```
<xs:element name="FunktionA">
    <xs:complexType>
         <xs:sequence>
                     <xs:element name="Location" type="PointX">
                     <xs:element name="Name" type="NewString">
         </xs:sequence>
    </xs:complexType>
</xs:element>
```

als Aufruf starte ich dann:


```
import org.apache.axis.client.call;

PointX Location = new PointX(44.4434, 664.3344);
NewString Name = new NewString("Test");

Object result = call.invoke( new Object[] { Location, Name } );
```

Ist das soweit ok?
Mir ist noch nicht ganz klar wie ich die xml-struktur aus der wsdl-Datei genau verwenden kann


----------



## schlingel (13. Nov 2011)

Dir sollte ein kompletter Client-Stub generiert werden. 

Das bedeutet du kannst auch typsicher deinen Server um die generierten Klassen ansprechen. Warum machst du das nicht so?


----------



## erazor2106 (13. Nov 2011)

sorry, ich kann dir gerade nicht ganz folgen 

was meinst du mit einem kompletten Client-Stub?


----------



## schlingel (13. Nov 2011)

Ein Stub bzw. Client Stub ist ein Begriff der Code bezeichnet der ein Interface welches z.B. durch eine WSDL beschrieben wird abbildet und sich um Netzwerkzugriff und korrekte Datenabbildung kümmert. Siehe auch Wikipedia.

In dem verlinkten Ausschnitt von der Java-Insel wird ja auch im Listing 19.8 eine generierte Klasse beim Client ausgeführt die gleich aussieht wie die Klasse am Server. Nur dass dabei statt lokalen Berechnungen die Anfrage für den Server verpackt wird, über's Netzwerk an diesen gesendet wird, dort berechnet wird und dann diesen Weg zurück nimmt.

Warum machst du's nicht genauso und verwendest solche generierte Klassen?


----------



## erazor2106 (13. Nov 2011)

oh mist, das was im obigen Link steht hatte ich irgendwie falsch interpretiert. wenn ich das jetzt richtig sehe werden aus den Funktionen welche in der WSDL-Datei beschrieben sind, Java-klassen generiert auf die ich dann zugreifen kann!?

werde ich morgen gleich mal ausprobieren. schon mal vielen dank an euch beide


----------



## KSG9|sebastian (24. Nov 2011)

Verwendest du Eclipse?
Falls ja: File -> New -> Web Services -> Web Service Client

Geht sicherlich in jeder anderen IDE auch. Oder du nimmst einfach eines der vielen Tools um aus WSDL Stubs zu generieren.


----------

