# JAVA Webservice Währungsrechner DRINGEND Hilfe



## mcaro (20. Dez 2013)

Hallo, 
ich bin noch relativ neu was Web Services und Java angeht und bräuchte Hilfe, weil ich nicht weiter komme.

 Ich habe bisher einen Web Service erstellt der mir folgende Daten zurückliefert:

• Bestellnummer (String 6),
• Artikelbezeichnung (String 20),
• Bestellvolumen (Double 8.2),
• KundenNummer (Integer 4)

Einträge für KundenNummer sind limitiert auf: 4711 bis 4719
Beim Aufruf werden die Datensätze erstellt über eine HashMap.

Im 2. Schritt wurde der Web Service CustomerService integriert, der Kundendaten verwaltet.
Unter folgernder URL ist die WSDL-Beschreibung dafür:

URL http://i83lp1.informatik.tu-muenchen...A000_cusB?wsdl

 folgende Services wurden angeboten:

• createCustomer: Einfügen eines Kundenstammsatzes
• getCustomer: Lesen eines Kundenstammsatzes unter Vorgabe der Kundennummer
• updateCustomer: Modifizieren eines Kundenstammsatzes
• getAllCustomers: Liste aller Kundenstammsätze

 Aufbau des einzelnen Datensatzes „Kunde“
• ID: Kundennummer (Integer 4),
• Name (String 20),
• city: Stadt
• orderVol: Bestellvolumen (Double 8.2),
• BLZ (String 8)

Es exisistieren Kundennummern 4711 bis 4719.
Das Client-Programm gibt unter Angabe der Bestellnummer die Kundennummer zurück und ermittelt über den Web Service dann die orderVolume und gibt diese aus so weit.


Jetzt soll das ganze erweitert werden.

Es gibt über die URL http://www.webservicex.net/CurrencyConvertor.asmx?wsdl einen WSDL-Beschreibung für einen Web Service der z.B Wechselkurs von Euro zu einer Fremdwährung liefert.
Das Bestellvolumen des Kunden soll jetzt in eine frei wählbare Währung umgerechnet und angezeigt werden.
Das vorhergehende Programm soll so erweitert werden, dass die beiden vorhergehenden Services nun mit diesem neuen Service zu einem kleinen Ablauf vereint werden.

Dieser Workflow soll dann mit einer aufbereiteten JSP-Seite (wahlweise) Servlet angestoßen werden.


Hoffe mir kann da jemand weiterhelfen.




Ich habe folgende Klassen:

Bestellung:


```
package web.service;

public class Bestellung {
private String bestellnummer;
private String artikelbezeichnung;
private double bestellvolumen;
private int kundennummer;

public Bestellung(String bestelln,String artikelb, double bestellv,
		int kundennr) {
	setBestellnummer(bestelln);
	setArtikelbezeichnung(artikelb);
	setBestellvolumen(bestellv);
	setKundennummer(kundennr);
	
	
	
}

public String getBestellnummer() {
	return bestellnummer;
}

public void setBestellnummer(String bestelln) {
	bestellnummer = bestelln;
}

public String getArtikelbezeichnung() {
	return artikelbezeichnung;
}

public void setArtikelbezeichnung(String artikelb) {
	artikelbezeichnung = artikelb;
}

public double getBestellvolumen() {
	return bestellvolumen;
}

public void setBestellvolumen(double bestellv) {
	bestellvolumen = bestellv;
}

public int getKundennummer() {
	return kundennummer;
}

public void setKundennummer(int kunden) {
	kundennummer = kunden;
}



}
```

BestellungService:


```
package web.service;

import javax.jws.*;

@WebService

public interface BestellungService {
	
@WebMethod

public Bestellung getBestellungen(String bestelln);

}
```

BestellungServiceimpl:

```
package web.service;

import java.util.*;

import javax.jws.WebMethod;
import javax.jws.WebService;


@WebService(targetNamespace = "http://service.web/", endpointInterface = "web.service.BestellungService", portName = "BestellungServiceimplPort", serviceName = "BestellungServiceimplService")
public class BestellungServiceimpl implements BestellungService {

	@Override
	@WebMethod
	public Bestellung getBestellungen(String bestelln) {
		HashMap<String, Bestellung> bestellungen =  new HashMap<String, Bestellung>();
		
		bestellungen.put("123000", new Bestellung("123000", "Wasser", 100.0,4711));
		bestellungen.put("124000", new Bestellung("124000", "Fanta", 100.0,4712));
		bestellungen.put("125000", new Bestellung("125000", "Cola", 100.0,4713));
		bestellungen.put("126000", new Bestellung("126000", "Sprite", 100.0,4714));
		bestellungen.put("127000", new Bestellung("127000", "Spezi", 100.0,4715));
		bestellungen.put("128000", new Bestellung("128000", "Limo", 100.0,4716));
		bestellungen.put("129000", new Bestellung("129000", "Kaffee", 100.0,4717));
		bestellungen.put("130000", new Bestellung("130000", "Bier", 100.0,4718));
		bestellungen.put("131000", new Bestellung("131000", "Tee", 100.0,4719));
		
	Set<String> mySet = bestellungen.keySet();
	Iterator<String> i = mySet.iterator();
	
	

	while(i.hasNext()){
		
		String x = (String) i.next();
		if (x.equals(bestelln)){
			
			System.out.println(x);
			
			return bestellungen.get(x);
		}
	
		
	}
	return null;
	
	}
	

}
```


Und habe folgenden Client:

```
package client;

import com.sap.nwce.ejb.service.DEVA000CusB;
import com.sap.nwce.ejb.service.DEVA000CusBService;
import com.sap.nwce.ejb.service.Customer;


import web.service.*;

public class Client {
	
public static void main(String[] args){
	
	
	BestellungServiceimplService a = new BestellungServiceimplService();
	
	BestellungService b = a.getBestellungServiceimplPort();
	
	Bestellung c = new Bestellung();
	
	c = b.getBestellungen("125000"); 
	
	System.out.println("Bestellnummer:	" + c.getBestellnummer());
	System.out.println("Artikel:	" + c.getArtikelbezeichnung());
	System.out.println("Bestellvolumen:	" + c.getBestellvolumen());
	System.out.println("Kundennummer:	" + c.getKundennummer());
	
	   
    DEVA000CusB customerService = new DEVA000CusBService().getDEVA000CusBPort();
    Customer customer = customerService.getCustomer(c.getKundennummer());
    System.out.println("BLZ:		" + customer.getBLZ());
    System.out.println("Order Volume:	" + customer.getOrderVol());
    
    
}

}
```

Vielen lieben Dank schon mal im Voraus.


----------



## Decrayer (14. Jan 2014)

Was genau ist denn das Problem bzw. die Frage? Methodisch wie du am besten vorgehen solltest? Oder klappt etwas nicht so, wie es sollte?

Das hört sich für mich ziemlich straight-forward an, also wenn du das vorher auch schon hinbekommen hast, dann müsste das doch jetzt auch kein Problem mehr sein, oder? (Ich bin allerdings auch noch Anfänger).


----------

