URL: https://www.overclockers.at/coding-stuff/j2ee_java-ejb_jboss4_0_3_problem_170570/page_1 - zur Vollversion wechseln!
Hallo
Ich suche jetz schon seit einigen Stunden nach einem Fehler, einer NullPointer-Exception um genau zu sein, in einem Programm dass ich für die Schule schreiben muss.
Es handelt sich dabei um ein J2EE-Projekt mit Server+Swing-Client, der Server läuft auf JBoss. Die Nullpointer-Exception tritt gleich beim Login auf, und ich finde beim besten Willen den Fehler nicht. Jetz is halt die Frage ob es irgendwas bringt hier Code-stellen zu posten, da es etliche in verschiedensten Klassen sind und bei J2EE die Fehler ja bekanntlich _überall_ sein können.
Jetz frage ich mich ob es hier zufällig einen fähigen Programmierer gibt dem ich das gesamte Projekt schicken könnte und der sich das ganze mal schnell ansieht (Entwicklungsumgebung: Netbeans 5.0), vielleicht ist es eh was banales was ich einfach nicht finden kann.
Wäre großartig 
tia
Bei Java-Exceptions gibts eh so schöne Stacktraces, da braucht man nur mehr schauen welche Variable wo Null ist, und dann halt zurückverfolgen warum das so ist.
Ansonsten halt die Standardtaktik: Codeteile auskommentieren bis das Problem nicht mehr auftritt, dann hast du den Fehler eingegrenzt.
Ja, danke, das hab ich gestern eh einige Stunden lang gemacht, das komische ist:
Im Client:
Code:this.initInitialContext(); Object ref = ctx.lookup("DataBean"); System.out.println("Lookup OK"); pack.DataRemoteHome dRemoteHome = (DataRemoteHome)PortableRemoteObject.narrow(ref, DataRemoteHome.class); pack.DataRemote data = dRemoteHome.create(); System.out.println(data.getString());
Code:initComponents(); this.data = con.getConnection(); try { System.out.println(data.getString()); } catch(Exception ex) { ex.printStackTrace(); }
3 Möglichkeiten (was der kleine Ausschnitt an Code hier zulässt):
1.) con.getConnection() liefert null zurück -> untersuchen.
2.) Im Konstruktor gibt es eine lokale Variable data, die mit null initialisiert wurde. Du weist dann this.data zu aber data ist noch immer null. -> Lokale Variable entfernen.
3.) Die NullpointerException wird _in_ getString() geworfen (Stacktrace wär interessant) -> Fehler dort suchen.
Also, du hast recht, con.getConnection() liefert null zurück, warum das so ist ist mir allerdings schleierhaft
eigentlich müsste meine Connection ja passen oder?
Code:public Context initInitialContext() { // Context initialisation try { Hashtable env = new Hashtable(); env.put(Context.INITIAL_CONTEXT_FACTORY,"org.jnp.interfaces.NamingContextFactory"); env.put(Context.PROVIDER_URL, "jnp://localhost:1099"); //env.put(Context.PROVIDER_URL, "jnp://wotan.activenet.at:1099"); env.put(Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interfaces"); ctx = new InitialContext(env); return ctx; } catch (Exception ex) { System.err.println("Fehler beim initialisieren des Context: " + ex.getMessage() ); return null; } }
Code:public DataRemote getConnection() { return data; }
wird das .create() auch mal wo aufgerufen? wenn du data nie was zuweist wirst du auch immer null zurückkriegen, und in deinen etwas verwirrenden segmenten fehlt mir das irgendwie...
ja, create() wird direkt in der Hilfsklasse aufgerufen
Code:this.initInitialContext(); Object ref = ctx.lookup("DataBean"); System.out.println("Lookup OK"); pack.DataRemoteHome dRemoteHome = (DataRemoteHome)PortableRemoteObject.narrow(ref, DataRemoteHome.class); pack.DataRemote data = dRemoteHome.create(); System.out.println(data.getString());
mein lieber, jetzt poste mal bitte die ganze(n) klasse(n) und schnipsel nicht immer so unwesentliche dinge wie die methodennahmen ab, das macht es (zumindest für mich) nicht einfacher herauszufinden, was da wann wie passiert...
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2026