Vector Problem

  • Themenstarter Themenstarter Selectah
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
S

Selectah

Gast
Hallo allerseits!

Ist es nicht möglich mehrere Vectors in einer Klasse zu brauchen? Falls ja, ist es möglich ein beliebiges Objekt in zwei verschiedene Vector hinzuzufügen? (mit addElement)

Er wirft bei mir immer eine java.lang.NullPointerException... :cry:

Danke schon im Voraus für Hilfe.....


Code:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Vector;

/**
 * @author Du
 *
 * 
 * Window - Preferences - Java - Code Style - Code Templates
 */
public class CAp1Server extends Thread{
    
    private static final int BUFFER_SIZE = 2;
    private int br_telegramId = 0;
    private ServerSocket ss = null;
    private Socket client_Anfrage = null;
    private static int portNummer = 2001; // Standartport = 2001
    private String job = ""; // Auftrag von Client
    private Vector befehlsBuffer = null;
    private Vector warteliste = null;
    private BufferedReader in;
    
    // Konstanten (Spezielle ASCII Zeichen)
    private static final char SOH = (char)1;
    private static final char STX = (char)2;
    private static final char ETX = (char)3;
    private static final char EOT = (char)4;
    private static final char LF = (char)10;
    private static final char CR = (char)13;
    private static final char RS = (char)30;
  
    public static void main (String[] args) throws IOException {
        if (args.length > 0){
            portNummer = Integer.parseInt(args[0]);
        }
        CAp1Server server = new CAp1Server();                    
    }

    public CAp1Server(){
        try {
            ss = new ServerSocket (portNummer);
            wln ("[server running @ port: " + portNummer + "]");                
            client_Anfrage = ss.accept(); // Auf Client-Anfragen warten:
            warteliste = new Vector ( 10 );
            kommuniziere();
        } catch (Exception e) { // Ein Fehler ist aufgetreten:            
            wln ("Fehler: " + e);
        } 
    }
    
    private void kommuniziere (){
        wln ("client has connected");
        try {
            // Streams initialisieren:
            InputStream input = client_Anfrage.getInputStream();
            in = new BufferedReader (
               new InputStreamReader (input));      
// -------------------------------------------------------------------            
            while(true){                    	                 
                jobEinlesen();  
                wln ("");
                wln("incoming job");
		        CWork work1 = new CWork(this, client_Anfrage, job);
                if (warteliste.size() <= BUFFER_SIZE){  
			        if ( warteliste.isEmpty() ){
			            befehlsBuffer.addElement(work1);
			            warteliste.addElement(work1);			            
			            wln("proceed...");
				        work1.start();
			        }
			        else{
			            warteliste.addElement( work1 );
			            wln("server not ready! write to buffer...");
			        }    
                }
                else{
                    wln("server busy");
                    work1.busy();                    
                }
            }
// -------------------------------------------------------------------            
        } catch (IOException e) {
            wln ( "Fehler@kommuniziere: " + e.toString() );
        }
    }

    private void jobEinlesen (){
        try {
	        job = ""; // auf null setzen
	        // Einlesen von Job
	        char c = 0;

	        do {
	            c = (char)in.read();
	            job = job + c;
	        }while(c!=EOT);      
        } catch (IOException e) {
            wln ( "Fehler@jobEinlesen: " + e.toString() );
        }
    }
    
    protected void bin_fertig(){
        CWork work2;
        warteliste.remove( 0 );
        if ( !warteliste.isEmpty() ){  
            wln("server ready! read from buffer...");
            wln("proceed...");
            work2 = (CWork) warteliste.get( 0 );
            work2.start();
        }
    }  
    protected void wln (String s) {
        System.out.println ( s );
    }

    protected void w (String s) {
        System.out.print ( s );
    }
}
:toll:
 
Natürlich wirft er ne NullPointerException, weil du den Vector befehlsBuffer nicht initialisierst.

Code:
befehlsBuffer = new Vector();

Was deine Fragen angeht: Ja 🙂
 
:applaus: :applaus: :applaus: jetzt funktionierts...

@AlArenal
Danke tausend mal! Wie konnte ich das nur übersehen... :roll:

@meez
jepps, wurde in Zeile 70 geworfen..
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben