KontoManager WebService

J

jaja

Gast
Hallo kannst du das lösen und wieviel kostet es ?

Schreiben Sie einen WebService, der die Logik des KontoManagers (siehe Aufgabe 2) simuliert.
Dieser speichert die Konten in der Textdatei „konto.txt“.
Der KontoManager hat folgende Funktionalitäten:
Code:
void  fuegeKontoHinzu(Konto input)
Code:
int zaehleKonten()
Code:
ArrayList holeAlleKonten()
Code:
Konto holeKonto(int kontonummer)

Schreiben Sie für den oben erstellten WebService einen WebService Client, der alle Methoden des WebService nutzt und die Rückgabewerte auf der Kommandozeile des Clients ausgibt.

 
J

JohannisderKaeufer

Gast
Server
Java:
package wskonto;

public class Konto {
	private int kontonummer;
	private int guthaben;

	public Konto() {

	}

	public Konto(int kontonummer) {
		this.kontonummer = kontonummer;
		this.guthaben = 0;
	}

	public int getKontonummer() {
		return kontonummer;
	}

	public void setKontonummer(int kontonummer) {
		this.kontonummer = kontonummer;
	}

	public int getGuthaben() {
		return guthaben;
	}

	public void setGuthaben(int guthaben) {
		this.guthaben = guthaben;
	}
}
Java:
package wskonto;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Scanner;
import java.util.StringTokenizer;

import javax.jws.WebService;
import javax.xml.ws.Endpoint;

@WebService
public class KontoManger {
private Map<Integer, Konto> konten = new HashMap<Integer, Konto>();
	public KontoManger(){
		loadKonten();
	}
	
	private void loadKonten() {
		try {
			Scanner scanner = new Scanner(new File("konten.txt"));
			while(scanner.hasNext()){
				StringTokenizer tokenizer = new StringTokenizer(scanner.nextLine(),";");
				Konto konto = new Konto(Integer.parseInt(tokenizer.nextToken()));
				konto.setGuthaben(Integer.parseInt(tokenizer.nextToken()));
				konten.put(konto.getKontonummer(), konto);
			}
			
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		}
		
	}

	public void fuegeKontoHinzu(Konto input) {
		konten.put(input.getKontonummer(), input);
		saveKonten();
	}
	private void saveKonten() {
		try {
			FileWriter writer = new FileWriter(new File("konten.txt"));
			for(Konto konto : konten.values()){
				writer.write(konto.getKontonummer()+";"+konto.getGuthaben()+"\n");
			}
			writer.flush();
			writer.close();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}

	public int zaehleKonten(){
		return konten.values().size();
	}
	public ArrayList holeAlleKonten(){
		ArrayList<Konto> kontenliste = new ArrayList<Konto>();
		for(Konto konto : konten.values()){
			kontenliste.add(konto);
		}
		return kontenliste;
	}
	public Konto holeKonto(int kontonummer){
		return konten.get(kontonummer);
	}
	
	public static void main(String[] args){
		Endpoint endpoint = Endpoint.create(new KontoManger());
		endpoint.publish("http://localhost:8080/kontomanager");
	}
}

Server starten (KontoManger ausführen und WSClient-Code generieren lassen
Code:
wsimport -keep -s src http://localhost:8080/kontomanager?wsdl

Client
Java:
package wskonto.client;

import wskonto.Konto;
import wskonto.KontoManger;
import wskonto.KontoMangerService;

public class KontoClient {
	public static void main(String[] args) {

		KontoMangerService service = new KontoMangerService();
		KontoManger manager = service.getKontoMangerPort();
		System.out.println(manager.zaehleKonten());
		Konto konto = new Konto();
		konto.setKontonummer(3);
		konto.setGuthaben(200);
		manager.fuegeKontoHinzu(konto);
		System.out.println(manager.zaehleKonten());
		for(Object currentKonto : manager.holeAlleKonten()){
			System.out.print("KNR "+((Konto)currentKonto).getKontonummer());
			System.out.println("SALDO "+((Konto)currentKonto).getGuthaben());
		}
		Konto nummereins = manager.holeKonto(1);
		System.out.print("KNR "+((Konto)nummereins).getKontonummer());
		System.out.println("SALDO "+((Konto)nummereins).getGuthaben());
	
		
	}
}


Fünf minuten sind dafür aber reichlich knapp kalkuliert.
 
J

jaja

Gast
ih weis nicht was ich sagen soll vielen vielen dank tausen dank mehr als tausen dank :) bedanke mich nochmals herzlich bin idr was schuldig :)
 

Neue Themen


Oben