Jar-Ausführung / RMI / Datenbank / NullPointerExce

Halli hallo.

also ich habe schon viel auf google gesucht, aber nichts hilfreiches gefunden, darum hier mein problem:

ich habe in java eine kleine applikation mit eclipse gebastelt.

die applikation bindet ein objekt über rmi an die registry und ein client kann sie abrufen und mit ihr methoden benutzen. unter anderem kann man so auch werte in eine mysql datenbank schreiben.

das funktioniert in eclipse auch wunderbar.

ich habe für die bindung an die registry eine spezielle klasse und diverse klassen die methoden ausführen (meine clients)

ich starte also zunächst die klasse für die registry und danach den client der sich das objekt holt.

nun habe ich diese klassen jeweils als jar exportiert um es ausserhalb von eclipse zu testen.

die anbindung der registry funktioniert beim aufruf.

sobald ich aber den client aufrufe bekomme ich eine fehlerausgabe.
der client ruft nebenbei erst methoden auf und greift auch auf die datenbank zu.

ich bekomme eine u.a eine meldung:

Exception in thread „main“ java.lang.NullPointerException at findbyKey…

alles in allem frage ich mich wieso es in eclipse funktioniert und so nun nicht?

hat jemand tipps, oder anregungen, ich bin für jeden ratschlag dankbar

Hallo,

es wäre jetzt hilfreich die Methode und Zeile zu haben, wo die NullPointerException geworfen wird. Dann wäre es leichter zu raten, warum es so ist. Ich würde mal sagen, es ist irgend ein Pfad nicht richtig.

LG matthias

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo & danke,

ich glaube mittlerweile auch es liegt nur an der verbindung zur datenbank.

normale abfragen, ohne zugriff auf die datenbank funktionieren.
mit normalen abfragen meine ich rmi aufruf und methoden-nutzung.

ich glaube er kann den treiber nicht finden. ich habe diesen (mysql-connector-java-5.0.7-bin.jar) jedoch explizit im classpath angegeben.
und zwar mit direktem pfad zu ihm.
habe sogar schon die version 3.0 benutzt aber damit gehts auch nicht.

>im ablauf starte ich den server und binde das Verwalttungsobjekt an die registry.

>dann den client.

>die exception liegt in der klasse welche auch auf die datenbank zugreift (ein Mapper mit SQL Befehlen. Die Befehle liefen in eclipse reibungslos). Die Methode die ich erwähnte „finByKey()“ greift dabei normalerweise auch auf die DB zu, bzw. sollte dies.

Die Methode findbykey wird remote vom Client über das RMI Verwaltungs-Objekt aufgerufen.

Client —> Verwaltung.Methode --> Methode {…Mapper} —> Datenbank

ideen?

danke & viele grüße

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hier noch die Fehlermeldungen:

Also ich starte wie gesagt die RMI Anbindung in einem Fenster

dann in einem anderen den client:

Exception in thread „main“ java.lang.MullPointerException

at de.we.Project.db.AccountMapper.findByKey

at de.we.Project.VerwaltungImpl.getAccountbyID
at sun.reflect.NativeMethodAccessorImpl.invoke0
at sun.reflect.NativeMethodAccessorImpl.invoke
at sun.reflect.DelegatingMethodAccessorImpl.invoke
at sun.reflect.Method.invoke
at sun.rmi.server.UnicastServerRef.dispatch
at sun.rmi.transport.Transport$1.run
at java.security.AccessController.doPriviledged
at sun.rmi.transport.transport.serviceCall
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask
at java.util.concurrent.ThreadPoolExecutor$Worker.run
at java.lang.Thread.run
at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer
at sun.rmi.transport.StreamRemoteCall.executeCall
at sun.rmi.server.RemoteObjectInvocationHandler.invoke
at $Proxy0.getAccountbyId
at de.we.Project.clients.Client04.main

Im Fenster in dem die Registry gestartet wurde steht ausserdem noch:

java.lang-ClassNotFoundException: com.mysql.jdbc.Driver

at java.net.URLClassLoader$1.run
at java.net.URLClassLoader$1.run

Beste Grüße!