Java ME java.rmi.Remote kann nicht gefunden/geladen werden

Jaspar

Mitglied
Hallo Community,

ich habe ein Problem mit einer Anwendung auf einem mobilen Gerät, die einen Webservice über eine externe Bibliothek nutzen soll.
Beim Start der Anwendung wird eine Exception geworfen mit folgendem Stack Trace:


Exception in thread "main" java.lang.NoClassDefFoundError: java.rmi.Remote
at java.lang.ClassLoader.defineClassImpl(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.findClassImpl(Unknown Source)
at java.net.URLClassLoader$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Unknown Source)
at java.net.URLClassLoader.findClass(Unknown Source)
at com.ibm.oti.vm.URLSystemClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at com.ibm.oti.vm.URLSystemClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.J9VMInternals.verifyImpl(Native Method)
at java.lang.J9VMInternals.verify(Unknown Source)
at java.lang.J9VMInternals.initialize(Unknown Source)
...

Die Exception selbst ist ja nicht schwer verständlich. Ich weiss aber einfach nicht, wo denn das Interface java.rmi.Remote auf dem mobilen Gerät liegen muss, damit es gefunden wird, bzw. ob und wenn ja, welche zusätzlichen Bibliotheken installiert werden müssen, damit das java.rmi.Remote Interface auch auf dem mobilen Gerät zur Verfügung steht.


Vielen Dank im Voraus.


Liebe Grüße,

Jas
 
Hallo The_S,

erstmal Danke, dass Du mir weiterhelfen möchtest.

Aber ich muss gestehen, dass mir Deine Antwort etwas zu allgemein formuliert ist, als dass sie mir wirklich weiterhelfen würde.
Kannst Du vielleicht etwas genauer schreiben, welche externen .jar Dateien ich einbinden muss?
 
Ich denke du hast eine externe JAR, die du einer JAR mit einem MIDlet drin auf einem Handy bekannt geben möchtest!? Das funktioniert meines Wissens nach nur, indem du die externe JAR entpackst und mit in die MIDlet-JAR packst.
 
Hm nicht ganz.

Ich habe ein Handheld auf dem Windows CE läuft.
Auf diesem Handheld läuft meine Anwendung die eine externe Bibliothek benutzt. In dieser externen Bibliothek wird eine Methode zur Verfügung gestellt die über einen Webservice eine Datei auf das Handheld lädt. Dieser Methode wird über einen Parameter mitgegeben welche Webservice Implementierung verwendet werden kann/soll. Mögliche Optionen sind AXIS oder ME.
Wenn ich die Anwendung auf einem PC laufen lasse und als Webservice Implementierung AXIS wähle funktioniert alles.
Die Kombination Webservice Implementierung ME und Handheld führt dann allerdings zur Exception in meinem Ausgangspost.
 
Dann musst du gucken, ob es für deinen Handheld eine RMI Implementierung gibt und diese ggf. bekannt geben. Bin übrigens von CLDC und MIDP ausgegangen. Kann sein, dass man bei CDC auch externe JARs auf anderen Weg einbinden kann. Noch nie mit CDC gearbeitet.
 
Heyho,

ich habe jetzt eine Bibliothek die das Interface java.rmi.Remote implementiert gefunden und dem Classpath hinzugefügt.

Jetzt erhalte ich folgende Exception beim Start der Anwendung:


Exception in thread "main" java.lang.VerifyError:
java.lang.SecurityException: java.rmi.Remote - protected system package 'java.rmi'
at java.lang.J9VMInternals.verify(Unknown Source)
at java.lang.J9VMInternals.initialize(Unknown Source)


Das sagt mir allerdings nichts. Ich bin dankbar für jede Hilfe.

Liebe Grüße,

Jas
 
Zuletzt bearbeitet:
Scheinbar erlaubt es der SecurityManager nicht ein Package mit dem Namen java.rmi einzubinden, da das normalerweiße zum Systempath gehört. Du kannst mal versuchen es in den Systempath mit aufzunehmen. Aber ansonsten ... kA. Kenne mich mit dem Thema nicht aus. Ich bin raus.
 
Bin recht neu in der Sparte, aber ich habe z.B. probleme (Android) serialisierte Objekte zu empfangen(senden geht). Soetwas wie Strings lassen sich problemlos umsetzen. Ich könnte mir vorstellen, dass das bei dir auch Probleme gibt/geben wird. Das rmi-Package ist bei mir ebenfalls (im SDK) nicht vorhanden(oder verboten, könnte auch sein). Ich weis nicht ob SIMON - Overview - root1.de - Software Engineering da eine alternative wäre, könnte man sich aber mal erkundigen.
 
Danke für eure Antworten.

@The_S: Wenn ich die Bibliothek in das J9 Verzeichnis verschiebe ändert sich leider nichts.

@Tomate_Salat: Ich fürchte ich habe nicht wirklich eine Alternative, da die externe Bibliothek die mit dem Webservice kommuniziert ja offenbar eine Implementierung des java.rmi.Remote Interfaces benötigt.
 

Zurück
Oben