Java Reference
In-Depth Information
return anfrage.getBytes();
}
// Packe die Antwortnachricht aus dem Byte-Array aus:
// liefere das Ergebnis des Dienstaufrufs als Float zurueck.
private Float auspacken (byte[] nachricht)
{
String[] strings = (new String (nachricht)).split (";");
return Float.valueOf (strings[1]);
}
}
Die Klasse ClientsideWetterDienstProxy ist der Stellvertreter des Wetterdiens-
tes auf der Seite des Clients. Hierf├╝r muss sie die gleiche Schnittstelle wie auch die
Klasse WetterDienst implementieren. Auch hier gilt: damit der Broker die Antwort-
nachrichten wieder zur├╝ckliefern kann, muss die Klasse ClientsideWetter-
DienstProxy die Schnittstelle IClientsideProxy implementieren. Hier nun die
Klasse ClientsideWetterDienstProxy :
// Datei: ClientsideWetterDienstProxy.java
public class ClientsideWetterDienstProxy
implements IWetterDienst, IClientsideProxy
{
private Broker broker;
private String response;
public ClientsideWetterDienstProxy (Broker broker)
{
this.broker = broker;
System.out.println
("ClientSideWetterDienstProxy: instanziiert");
}
// Nimm Dienstaufruf entgegen, erzeuge Anfragenachricht
// und schicke sie an den Broker.
// Die zurueckgelieferte Antwort wird als Ergebnis des Aufrufs
// dem Client uebergeben.
public String erfrageWetter (Tag tag)
{
String dienstName = "erfrageWetter";
byte[] anfrage = verpacken (dienstName, tag);
broker.anfrageWeiterleiten (anfrage, this);
return response;
}
// Hier kommt die Antwort des Servers ueber den Broker zurueck.
// Die Nachricht wird ausgepackt und intern zwischengespeichert.
public void bearbeiteAntwort (byte[] antwort)
{
response = auspacken (antwort);
}
// Erstelle eine Anfragenachricht in Form eines Byte-Arrays:
// mit eigenem Namen, Namen der aufgerufenen Dienstmethode
// und dem Argument des Dienstaufrufs.
Search WWH ::




Custom Search