G
Guest
Gast
Hallo...
ich habe mir um mich ins NIO einzuarbeiten einen schniecken Echoserver geschrieben.
Dann kam ich auf die Idee nicht nur an dem Server selbst zu arbeiten sondern
gleich einen Server für verschiedene Services zu schreiben.
Nun hab ich 2 Probleme... erstens hab ich Tomaten auf den Augen und finde in dem Code (unten)
den Fehler nicht. Hier wird der dienst in "startService()" nicht aus der Hashmap geholt obwohl
er 1. drin ist und 2. auch der key stimmt.!
Folge: Zeile 32 NullPointerException weil tatsächlich nix drinsteht...
Die Klasse EchoService ist mein Echoserver der Runnable implementiert...
Das andere Problem ist dass ich es so bestimmt nicht machen werde aber vorerst ne
vorablösung benötige.
Drum meine frage nach Tipps wie man einen solchen "Service Server" am saubersten aufbaut
im bezug auf die Technik.
Hier noch der Code
mfg Alex
ich habe mir um mich ins NIO einzuarbeiten einen schniecken Echoserver geschrieben.
Dann kam ich auf die Idee nicht nur an dem Server selbst zu arbeiten sondern
gleich einen Server für verschiedene Services zu schreiben.
Nun hab ich 2 Probleme... erstens hab ich Tomaten auf den Augen und finde in dem Code (unten)
den Fehler nicht. Hier wird der dienst in "startService()" nicht aus der Hashmap geholt obwohl
er 1. drin ist und 2. auch der key stimmt.!
Folge: Zeile 32 NullPointerException weil tatsächlich nix drinsteht...
Die Klasse EchoService ist mein Echoserver der Runnable implementiert...
Das andere Problem ist dass ich es so bestimmt nicht machen werde aber vorerst ne
vorablösung benötige.
Drum meine frage nach Tipps wie man einen solchen "Service Server" am saubersten aufbaut
im bezug auf die Technik.
Hier noch der Code
Code:
package comnet.server.core;
import java.util.HashMap;
public class ComnetServer implements Runnable{
private HashMap<String, Runnable> services;
private boolean end;
public ComnetServer() {
services = new HashMap<String, Runnable>();
end = false;
}
public void init(){
System.out.println("Startup ComnetServer...");
addService("EchoService", new EchoService());
startService("ÉchoService");
}
public void addService(String key, Runnable service){
services.put(key, service);
System.out.println("Service " + key + " is added to Servicelist");
}
public void startService(String serviceName){
if(services.containsKey(serviceName)){
Thread service = (Thread) services.get(serviceName);
service.start();
System.out.println("Service "+ serviceName +" is up and running");
} else {
System.out.println("Key not valid");
}
}
public void shutdown(){
}
public void observe(){
}
public void run() {
init();
while(!end){
observe();
}
}
public static void main(String[] args) {
Thread cnServer = new Thread(new ComnetServer());
cnServer.run();
}
}
mfg Alex