Client für Webservice mit Eclipse

H

heinäääää

Hallo,
meine Frage ist folgende: wenn ein Dienst steht schon, man hat eine wsdl Datei. Eclipse bittet zwei Möglichkeiten "Generate client" und "generate java been skeleton". Also Also wie benutze ich das ganze? Webservice ist da generierte klassen auch und weiter? wie ruft die auf und welche?

Danke im vorraus.

Heinrich
 
Ähm, ja aber client / server sagt dir doch schon was, oder? Wenn der WebService da ist, ist der halt Server und du willst sicher nen client dafür bauen. Willst du Funktionalität als WebService bereitstellen, baust du logischerweise nen Server.

Scheint, als fehlt es an konzeptionellem Grundverständnis!

Gruß
Ollie
 
Hallo,
ich möchte lediglich den Webservice nutzen.
Und Client möchte mit Eclipse erstellen. Man kann unter dem Punkt Web Client anfangen und wsdl datei dafür benutzen lassen. Eclipse erstellt dann auch ein Package mit einigen Datein darin. Ich frage mich wie soll ich die benutzen.

Heinrich
 
Hmm, ja wie benutzt man Klassen? Schon komisch, dass du solche Fragen stellst, wenn du bereits mit WebServices arbeitest. Aber bitte, dann halt von vorn.

Ich kenn dein Eclipseplugin nicht, deswegen weiß ich nicht genau was für Klassen im Detail erzeugt werden, aber im groben bereiten die Tools folgendes vor: sie generieren einen WebService Clientstub, der deinen Aufruf an den WebService delegiert, ihn also aufruft. Über das Interface dieses Stubs kannst du nun den WebService von deiner eigentlichen Anwendung aus aufrufen. Sprich du benutzt das generierte Stubinterface, um deine Aufrufe lokal abzusetzen. Das sollte in etwa so aussehen:
Java:
public interface GeneratedStub
{
  public void yourMethod();
}
Dazu gibt es noch eine konkrete Klasse:
Java:
public class GeneratedStubImplementation implements GeneratedStub
{
  public void yourMethod()
  {
    // WebService aufrufe
  }
}

Die Klasse und das Interface sollte dir dein Plugin so oder ähnlich erzeugt haben. Deine Anwendung sollte nun in etwa so aussehen:

Java:
public class MyClient
{
  public static void main(String[] args)
  {
    GeneratedStub myRemoteComponent = new GeneratedStubImplementation();
    myRemoteComponent.yourMethod();
  }
}

Im Prinzip also klassisches Adapterpattern...

Gruß
Ollie
 
Ja so in etwa

aber das ist irgendwie richtiger
Code:
public static void main(String[] args)  {
        try {
            Service srv=new ServiceLocator();
            URL url=new URL(srv.getServiceSoapAddress());
            ServiceSoapStub mb=new ServiceSoapStub(url.openConnection().getURL(),srv);
            mb.addMedia("Piet", "", "My Leben ohne VB   DID", "", "", "");
        }
        catch (AxisFault e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        catch (RemoteException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        catch (MalformedURLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        
}

noch ein wenig row, aber es leuft.


Heinrich
 
Wow, ich dachte das Tool macht dir das Leben einfacher ;) Die ersten 3 Zeilen solltest du eigentlich gar nicht machen müssen, aber es kann sein, dass ich durch den Spring Ansatz etwas verwöhnt bin.Falls es dich interessiert: http://static.springframework.org/spring/docs/2.0.x/reference/remoting.html#d0e22900 - Erster Teil des Abschnitts: Konfiguration mit Remoteexceptions, zweiter Teil: KOnfiguration bei der Spring die Exceptions behandelt. Ich bevorzuge den zweiten Weg ;) Allerdings kann es schon sinnvoll sein, die Exception manuell zu catchen...

Gruß
Ollie
 
Die ersten drei Zeilen könnten vielleicht in eine passen.. aber ganz ohne?
Weiss jemand wie man dem Klient SSL beibringt?
Wieder so eine komisch formulierte Frage, ich weiss. Nur weiss ich nicht was man fragen sollen. Das Thema ist für mich neu

Heinrich
 
Zurück