NullPointer finde den grund nicht

Hakkemaster

Mitglied
Hallo habe ein problem und zwar programmiere ich einen kleinen chat nur beim login bekomme ich immer wieder eine NullPointer exeption.

Ich habe gesucht wie ein bekloppter aber finde nicht raus was ich falsch mache.

Das ganze habe ich mittels xsocket programmiert.

Hier ist der fehler:

Code:
null
Exception in thread "AWT-EventQueue-3" java.lang.NullPointerException
	at client.client.sendmsg(client.java:108)
	at client.GUI.send(GUI.java:86)
	at client.GUI.<init>(GUI.java:58)
	at client.login.jButton1ActionPerformed(login.java:165)
	at client.login.access$100(login.java:21)
	at client.login$2.actionPerformed(login.java:102)
	at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
	at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
	at java.awt.Component.processMouseEvent(Unknown Source)
	at javax.swing.JComponent.processMouseEvent(Unknown Source)
	at java.awt.Component.processEvent(Unknown Source)
	at java.awt.Container.processEvent(Unknown Source)
	at java.awt.Component.dispatchEventImpl(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.run(Unknown Source)

hier kommt die zeile 108:

Java:
nbc.write(";|--LOGIN--|~" + nick + ":" + newmsg + ";");

und einmal die gesamte client.java:

Java:
package client;

import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.xsocket.connection.IDataHandler;
import org.xsocket.connection.INonBlockingConnection;
import org.xsocket.connection.NonBlockingConnection;

public class client {

    INonBlockingConnection nbc;
    public GUI g;
    public String nick;
    IDataHandler clientHandler;

    public client(GUI g, String nick) {
        this.g = g;
        this.nick = nick;
        try {
            // Starte verbindung
            nbc = new NonBlockingConnection("webspace-sponsor.eu", 8492, new clientHandler(nbc, g));
        } catch (IOException ex) {
            Logger.getLogger(client.class.getName()).log(Level.SEVERE, null, ex);
        } catch (ExceptionInInitializerError eie) {
            System.out.println(eie.getMessage());
        }
    }

    public void sendmsg(String msg) throws IOException {
        // Wenn nachricht == /quit
        if (msg.equalsIgnoreCase("/quit")) {
            // Beende verbindung
            nbc.close();
            // Schließe fenster
            g.quit();
            // Wenn msg mit /p startet
        } else if (msg.startsWith("/p")) {
            // nehme die ersten 3 zeichen des strings weg
            String newmsg = msg.substring(3);
            // schreibe nachricht mit vorsatz |--PRIVAT--| auf den server
            nbc.write(";" + nick + "~|--PRIVAT--|" + newmsg + ";");
            // Wenn msg mit /clear startet
        } else if (msg.startsWith("/clear")) {
            // Leere nachrichtenfeld
            g.clearTP();
            // Wenn msg mit /p startet
        } else if (msg.startsWith("/go")) {
            // nehme die ersten 4 zeichen des strings weg
            String newmsg = msg.substring(4);
            // schreibe nachricht mit vorsatz |--CHCHN--| auf den server
            nbc.write(";" + nick + "~|--CHCHN--|" + newmsg + ";");
            // Wenn msg mit /nc startet
        } else if (msg.startsWith("/go")) {
            // nehme die ersten 4 zeichen des strings weg
            String newmsg = msg.substring(4);
            // schreibe nachricht mit vorsatz |--CHCHN--| auf den server
            nbc.write(";" + nick + "~|--CHCHN--|" + newmsg + ";");
            // Wenn msg mit /nc startet
        } else if (msg.startsWith("/w")) {
            // nehme die ersten 4 zeichen des strings weg
            String newmsg = msg.substring(3);
            // schreibe nachricht mit vorsatz |--ADDCHAN--| auf den server
            nbc.write(";" + nick + "~|--PROFIL--|" + newmsg + ";");
            // Wenn msg mit /ntc startet
        } else if (msg.startsWith("/ntc")) {
            // nehme die ersten 5 zeichen des strings weg
            String newmsg = msg.substring(5);
            // schreibe nachricht mit vorsatz |--ADDTCHAN--| auf den server
            nbc.write(";" + nick + "~|--ADDTCHAN--|" + newmsg + ";");
            // Wenn msg mit /rc startet
        } else if (msg.startsWith("/rc")) {
            // nehme die ersten 4 zeichen des strings weg
            String newmsg = msg.substring(4);
            // schreibe nachricht mit vorsatz |--REMCHAN--| auf den server
            nbc.write(";" + nick + "~|--REMCHAN--|" + newmsg + ";");
            // Wenn msg mit /rtc startet
        } else if (msg.startsWith("/rtc")) {
            // nehme die ersten 5 zeichen des strings weg
            String newmsg = msg.substring(5);
            // schreibe nachricht mit vorsatz |--REMTCHAN--| auf den server
            nbc.write(";" + nick + "~|--REMTCHAN--|" + newmsg + ";");
            // Wenn msg mit /kick startet
        } else if (msg.startsWith("/kick")) {
            // nehme die ersten 6 zeichen des strings weg
            String newmsg = msg.substring(6);
            // schreibe nachricht mit vorsatz |--KICK--| auf den server
            nbc.write(";" + nick + "~|--KICK--|" + newmsg + ";");
        } else if (msg.startsWith("/lock")) {
            // nehme die ersten 6 zeichen des strings weg
            String newmsg = msg.substring(6);
            // schreibe nachricht mit vorsatz |--KICK--| auf den server
            nbc.write(";" + nick + "~|--LOCK--|" + newmsg + ";");
        } else if (msg.startsWith("/amsg")) {
            // nehme die ersten 6 zeichen des strings weg
            String newmsg = msg.substring(6);
            // schreibe nachricht mit vorsatz |--KICK--| auf den server
            nbc.write(";" + nick + "~|--AMSG--|" + newmsg + ";");
        } else if (msg.startsWith("/acomment")) {
            // nehme die ersten 6 zeichen des strings weg
            String newmsg = msg.substring(10);
            // schreibe nachricht mit vorsatz |--KICK--| auf den server
            nbc.write(";" + nick + "~|--ACOMMENT--|" + newmsg + ";");
        } else if (msg.startsWith("/login ")) {
            // nehme die ersten 8 zeichen des strings weg
            String newmsg = msg.substring(8);
            // schreibe nachricht mit vorsatz |--KICK--| auf den server
            nbc.write(";|--LOGIN--|~" + nick + ":" + newmsg + ";");
        } else {
            nbc.write(";" + nick + "~" + msg + ";");
        }
    }
}

und am server öffne ich den server wie folgt (ohne gemecker):

Java:
public static void main(String[] args) {
        try {
            srv = new Server("localhost", 8492, new xSocketDataHandler());
            srv.run();
        } catch (Exception ex) {
            System.out.println(ex.getMessage());
        }
    }

Ich hoffe mir kann jemand helfen den fehler zu finden

danke im voraus
 

Thief

Bekanntes Mitglied
Könnte es daran liegen? Du übergibst in new clientHandler() nbc, wobei nbc in diesem Fall noch null sein müsste.

Java:
 try {
            // Starte verbindung
            nbc = new NonBlockingConnection("webspace-sponsor.eu", 8492, new clientHandler(nbc, g));
        } catch (IOException ex) {
            Logger.getLogger(client.class.getName()).log(Level.SEVERE, null, ex);
        } catch (ExceptionInInitializerError eie) {
            System.out.println(eie.getMessage());
        }
 

Hakkemaster

Mitglied
sooo die nullpointer ist behoben... danke schonmal

nun ergibt sich ein zweites problem:
Code:
Exception in thread "AWT-EventQueue-4" java.lang.NoClassDefFoundError: Could not initialize class org.xsocket.connection.NonBlockingConnection
	at client.client.<init>(client.java:22)
	at client.GUI.<init>(GUI.java:56)
	at client.login.jButton1ActionPerformed(login.java:165)
	at client.login.access$100(login.java:21)
	at client.login$2.actionPerformed(login.java:102)
	at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
	at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
	at java.awt.Component.processMouseEvent(Unknown Source)
	at javax.swing.JComponent.processMouseEvent(Unknown Source)
	at java.awt.Component.processEvent(Unknown Source)
	at java.awt.Container.processEvent(Unknown Source)
	at java.awt.Component.dispatchEventImpl(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.run(Unknown Source)

allerdings habe ich die xsocket-2.8.2.jar schön in alle erdenklichen verzeichnisse gepackt, bei netbeans als lib hinzugefügt und die jar in die jar gepackt (was mich irritiert die absolutLayout.jar findet er und die is im selben ordner wie die xsocket).

eingebunden habe ichs wie folgt:

Code:
import org.xsocket.*;
import org.xsocket.connection.*;

im server wie im client. der server läuft aber der client zickt.

ich habe da echt keine ahnung mehr was ich noch versuchen soll.

ich hoffe ihr habt noch nen super tipp für mich.

achja die zeile in der die exeption geworfen wird ist folgende:
Java:
      nbc = new NonBlockingConnection("webspace-sponsor.eu", 8492, new clientHandler(this, g));

ich hoffe ihr könnt mir nochmal helfen :)

gruß hakkemaster
 

Landei

Top Contributor
Ist im NetBeans Editor das NonBlockingConnection rot unterstrichen oder nicht? Was passiert, wenn du auf "go to Sources" oder so gehst?
 

Hakkemaster

Mitglied
rot unterstrichen ist es nicht und wenn ich auf go to sources gehe passiert nichts.

Das komische ist wenn ichs im netbeans starte läuft es und wenn ichs dann auf dem server versucher über das applet zu laden geht net.
 

hartzie

Aktives Mitglied
So ein paar grundlegende Fragen hab ich dazu.

Wie baust du das ganze Programm?
Hast du Ahnung von Ant?
Lässt sich das Programm außerhalb von NetBeans starten?
 

Hakkemaster

Mitglied
Hallo,

ich habe nun rausbekommen das der fehler nur auftritt wenn
Java:
nbc.write(";|--LOGIN--|~" + nick + ":" + newmsg + ";");
ausgeführt wird.

hier nochmal der vollständige code zur einsicht:

Java:
package client;

import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.xsocket.connection.IDataHandler;
import org.xsocket.connection.INonBlockingConnection;
import org.xsocket.connection.NonBlockingConnection;

public class client {

    public INonBlockingConnection nbc;
    public GUI g;
    public String nick;
    private IDataHandler clientHandler;

    public client(GUI g, String nick) {
        this.g = g;
        this.nick = nick;
        try {
            // Starte verbindung
            nbc = new NonBlockingConnection("webspace-sponsor.eu", 8492, new clientHandler(this,g));
        } catch (IOException ex) {
            Logger.getLogger(client.class.getName()).log(Level.SEVERE, null, ex);
        } catch (ExceptionInInitializerError eie) {
            System.out.println(eie.getMessage());
        }
    }

    public void sendmsg(String msg) throws IOException {
        // Wenn nachricht == /quit
        if (msg.equalsIgnoreCase("/quit")) {
            // Beende verbindung
            nbc.close();
            // Schließe fenster
            g.quit();
            // Wenn msg mit /p startet
        } else if (msg.startsWith("/p")) {
            // nehme die ersten 3 zeichen des strings weg
            String newmsg = msg.substring(3);
            // schreibe nachricht mit vorsatz |--PRIVAT--| auf den server
            nbc.write(";" + nick + "~|--PRIVAT--|" + newmsg + ";");
            // Wenn msg mit /clear startet
        } else if (msg.startsWith("/clear")) {
            // Leere nachrichtenfeld
            g.clearTP();
            // Wenn msg mit /p startet
        } else if (msg.startsWith("/go")) {
            // nehme die ersten 4 zeichen des strings weg
            String newmsg = msg.substring(4);
            // schreibe nachricht mit vorsatz |--CHCHN--| auf den server
            nbc.write(";" + nick + "~|--CHCHN--|" + newmsg + ";");
            // Wenn msg mit /nc startet
        } else if (msg.startsWith("/go")) {
            // nehme die ersten 4 zeichen des strings weg
            String newmsg = msg.substring(4);
            // schreibe nachricht mit vorsatz |--CHCHN--| auf den server
            nbc.write(";" + nick + "~|--CHCHN--|" + newmsg + ";");
            // Wenn msg mit /nc startet
        } else if (msg.startsWith("/w")) {
            // nehme die ersten 4 zeichen des strings weg
            String newmsg = msg.substring(3);
            // schreibe nachricht mit vorsatz |--ADDCHAN--| auf den server
            nbc.write(";" + nick + "~|--PROFIL--|" + newmsg + ";");
            // Wenn msg mit /ntc startet
        } else if (msg.startsWith("/ntc")) {
            // nehme die ersten 5 zeichen des strings weg
            String newmsg = msg.substring(5);
            // schreibe nachricht mit vorsatz |--ADDTCHAN--| auf den server
            nbc.write(";" + nick + "~|--ADDTCHAN--|" + newmsg + ";");
            // Wenn msg mit /rc startet
        } else if (msg.startsWith("/rc")) {
            // nehme die ersten 4 zeichen des strings weg
            String newmsg = msg.substring(4);
            // schreibe nachricht mit vorsatz |--REMCHAN--| auf den server
            nbc.write(";" + nick + "~|--REMCHAN--|" + newmsg + ";");
            // Wenn msg mit /rtc startet
        } else if (msg.startsWith("/rtc")) {
            // nehme die ersten 5 zeichen des strings weg
            String newmsg = msg.substring(5);
            // schreibe nachricht mit vorsatz |--REMTCHAN--| auf den server
            nbc.write(";" + nick + "~|--REMTCHAN--|" + newmsg + ";");
            // Wenn msg mit /kick startet
        } else if (msg.startsWith("/kick")) {
            // nehme die ersten 6 zeichen des strings weg
            String newmsg = msg.substring(6);
            // schreibe nachricht mit vorsatz |--KICK--| auf den server
            nbc.write(";" + nick + "~|--KICK--|" + newmsg + ";");
        } else if (msg.startsWith("/lock")) {
            // nehme die ersten 6 zeichen des strings weg
            String newmsg = msg.substring(6);
            // schreibe nachricht mit vorsatz |--KICK--| auf den server
            nbc.write(";" + nick + "~|--LOCK--|" + newmsg + ";");
        } else if (msg.startsWith("/amsg")) {
            // nehme die ersten 6 zeichen des strings weg
            String newmsg = msg.substring(6);
            // schreibe nachricht mit vorsatz |--KICK--| auf den server
            nbc.write(";" + nick + "~|--AMSG--|" + newmsg + ";");
        } else if (msg.startsWith("/acomment")) {
            // nehme die ersten 6 zeichen des strings weg
            String newmsg = msg.substring(10);
            // schreibe nachricht mit vorsatz |--KICK--| auf den server
            nbc.write(";" + nick + "~|--ACOMMENT--|" + newmsg + ";");
        } else if (msg.startsWith("/login ")) {
            // nehme die ersten 8 zeichen des strings weg
            String newmsg = msg.substring(8);
            // schreibe nachricht mit vorsatz |--KICK--| auf den server
            nbc.write(";|--LOGIN--|~" + nick + ":" + newmsg + ";");
        } else {
            nbc.write(";" + nick + "~" + msg + ";");
        }
    }
}

ich hoffe einer findet einen fehler
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Kann ich die Nullpointer Exception umgehen Allgemeine Java-Themen 12
D Nullpointer Exception Problem Allgemeine Java-Themen 5
Kirby.exe Nullpointer Exception bei Queue Allgemeine Java-Themen 5
N Compiler-Fehler Warum erhalte ich einen Nullpointer Fehler? Allgemeine Java-Themen 2
M javafx ComboBox- Nullpointer Exception Allgemeine Java-Themen 6
T Nullpointer. :( Allgemeine Java-Themen 31
0 Animiertes Gif anzeigen - NullPointer Exception Allgemeine Java-Themen 19
L Nullpointer Exceptions werden nicht angezeigt Allgemeine Java-Themen 5
W Threads NullPointer: Konstruktor "zu langsam"? Allgemeine Java-Themen 3
I NullPointer während while(){} Allgemeine Java-Themen 4
G Nullpointer trotz vorherigem Nullcheck Allgemeine Java-Themen 2
V Array aus Instanzen, NullPointer Allgemeine Java-Themen 4
E YQL Api Test - NullPointer Allgemeine Java-Themen 9
A Compiler-Fehler Woher kommt der NullPointer? (Collections & Iterator) Allgemeine Java-Themen 7
D Nullpointer abfangen Allgemeine Java-Themen 7
B Nullpointer Exception in Array Allgemeine Java-Themen 15
Z NullPointer in einem VO Allgemeine Java-Themen 14
M Nullpointer Exeption bei String Array Allgemeine Java-Themen 9
A NullPointer bei System.getProperty("file.seperator") Allgemeine Java-Themen 4
A NullPointer bei konvertierung von byteArr --> Object Allgemeine Java-Themen 3
medic NullPointer verwirrt mich total. Allgemeine Java-Themen 3
G NullPointer. in einer Datenstruktur Allgemeine Java-Themen 2
H Nullpointer exception, Attribute in Label schreiben? Allgemeine Java-Themen 4
G Nullpointer Exception nach KeyPressed Allgemeine Java-Themen 6
G NullPointer ? wieso? Allgemeine Java-Themen 7
Drachenbauer Wie finde ich den Aufrufer zu einer Methode, die sich nicht in meinem Projekt befindet? Allgemeine Java-Themen 2
A Finde den Fehler nicht. Allgemeine Java-Themen 7
G Finde den Grund für ArrayIndexOutOfBounds nicht Allgemeine Java-Themen 2
B Finde letztes veränderte File Allgemeine Java-Themen 4
D Programm läuft fehlerhaft, finde den Fehler nicht Allgemeine Java-Themen 6
S Eclipse Wo finde ich die JPA Annotationen? Allgemeine Java-Themen 3
A Wie finde ich heraus, was eine Unterklasse implementiert? Allgemeine Java-Themen 5
V Wie finde ich die konkrete Implementierung? Allgemeine Java-Themen 8
chik Doppelt verkettete Liste bzw. Zirkulärliste (kleiner Fehler, den ich nicht finde) Allgemeine Java-Themen 4
T Problem, warum macht der das so(finde kein titel.) Allgemeine Java-Themen 3
B NullPointerExceptoin | finde sie nicht :( Allgemeine Java-Themen 5
G Wo finde ich die tools.jar? Allgemeine Java-Themen 10
K Bubblesort Programmierung, finde Fehler nicht . Allgemeine Java-Themen 25
M Allgemeine Frage: Wie lernt man Java / Programmieren von Grund auf? Allgemeine Java-Themen 7
R NullPointerException Ohne Grund Allgemeine Java-Themen 5
M Arraylänge... Der GRUND? Allgemeine Java-Themen 15
J Problem: Gui friert ein [Grund leider nicht nachvollziehbar] Allgemeine Java-Themen 5
N mit exec windows runterfahren (mit -c "und grund text&q Allgemeine Java-Themen 3
P automatische geometrieermittlung auf grund von farbwerten Allgemeine Java-Themen 5

Ähnliche Java Themen

Neue Themen


Oben