Hey ho,
ich weiß ich hab RMI im Titel, da es aber kein RMI-spezifisches Problem zu sein scheint, dachte ich mir, der Thread wäre am Besten in diesem Forum aufgehoben..
Zum Problem:
-> Ich versuche ein extrem simples RMI-Beispiel zum Laufen zu bringen.
-> Dabei halte ich mich exakt an das "Getting Started"-Tutorial von Sun: http://java.sun.com/javase/6/docs/technotes/guides/rmi/hello/hello-world.html
Nun ja, alles brav gemacht wie im Tutorial, nun versuche ich das Beispiel wie im Tutorial zum Laufen zu bringen (und zwar _alles_ lokal auf der gleichen Kiste), also:
-> rmiregistry startet schon mal merkwürdig, obwohl ich nicht glaube, das das Problem ist:
-> Der Service läuft auch:
-> Nun will ich den Server starten mittels:
dies scheitert aber das mit folgender Meldung:
Nun frage ich mich:
1.) Wieso zur Hölle taucht da auf einmal "gnu-java" auf?
Die JVM ist auf die 1.6 von sun gesetzt:
sowie
und noch
Wo kommt denn da jetzt gnu-gcj auf einmal her?
2. Hab ich evtl. bei der Codebase was falsch gemacht?
Das verlinkte Tutorial hier: http://java.sun.com/javase/6/docs/technotes/guides/rmi/codebase.html
hab ich gelesen, aber ich sehe soweit keinen Fehler meinerseits.....
Bin für jeden Tip dankbar.......
P.S.: OS ist Ubuntu Gutsy
ich weiß ich hab RMI im Titel, da es aber kein RMI-spezifisches Problem zu sein scheint, dachte ich mir, der Thread wäre am Besten in diesem Forum aufgehoben..
Zum Problem:
-> Ich versuche ein extrem simples RMI-Beispiel zum Laufen zu bringen.
-> Dabei halte ich mich exakt an das "Getting Started"-Tutorial von Sun: http://java.sun.com/javase/6/docs/technotes/guides/rmi/hello/hello-world.html
Nun ja, alles brav gemacht wie im Tutorial, nun versuche ich das Beispiel wie im Tutorial zum Laufen zu bringen (und zwar _alles_ lokal auf der gleichen Kiste), also:
-> rmiregistry startet schon mal merkwürdig, obwohl ich nicht glaube, das das Problem ist:
Code:
rmiregistry
WARNING: Error loading security provider org.bouncycastle.jce.provider.BouncyCastleProvider: java.lang.ClassNotFoundException: org.bouncycastle.jce.provider.BouncyCastleProvider not found in gnu.gcj.runtime.SystemClassLoader{urls=[file:./], parent=gnu.gcj.runtime.ExtensionClassLoader{urls=[], parent=null}}
WARNING: Error loading security provider gnu.crypto.jce.GnuCrypto: java.lang.ClassNotFoundException: gnu.crypto.jce.GnuCrypto not found in gnu.gcj.runtime.SystemClassLoader{urls=[file:./], parent=gnu.gcj.runtime.ExtensionClassLoader{urls=[], parent=null}}
The RMI naming service is listening at 1099
-> Der Service läuft auch:
Code:
ps aux | grep -i rmireg
1000 6936 0.0 4.2 77044 19160 pts/1 Sl 20:55 0:00 rmiregistry
-> Nun will ich den Server starten mittels:
Code:
cd ~/workspace/rmi/bin/
java -classpath example/hello/*.jar:. -Djava.rmi.server.codebase=file:example/hello/ example.hello.Server
dies scheitert aber das mit folgender Meldung:
Code:
Server exception: java.rmi.UnexpectedException: undeclared checked exception; nested exception is:
java.lang.ClassNotFoundException: example.hello.Hello not found in gnu.java.rmi.server.RMIClassLoaderImpl$MyClassLoader{urls=[file:example/hello/], parent=gnu.gcj.runtime.SystemClassLoader{urls=[file:./], parent=gnu.gcj.runtime.ExtensionClassLoader{urls=[], parent=null}}}
java.rmi.UnexpectedException: undeclared checked exception; nested exception is:
java.lang.ClassNotFoundException: example.hello.Hello not found in gnu.java.rmi.server.RMIClassLoaderImpl$MyClassLoader{urls=[file:example/hello/], parent=gnu.gcj.runtime.SystemClassLoader{urls=[file:./], parent=gnu.gcj.runtime.ExtensionClassLoader{urls=[], parent=null}}}
at sun.rmi.registry.RegistryImpl_Stub.bind(Unknown Source)
at example.hello.Server.main(Server.java:26)
Caused by: java.lang.ClassNotFoundException: example.hello.Hello not found in gnu.java.rmi.server.RMIClassLoaderImpl$MyClassLoader{urls=[file:example/hello/], parent=gnu.gcj.runtime.SystemClassLoader{urls=[file:./], parent=gnu.gcj.runtime.ExtensionClassLoader{urls=[], parent=null}}}
at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:255)
at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:233)
at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:359)
... 2 more
Nun frage ich mich:
1.) Wieso zur Hölle taucht da auf einmal "gnu-java" auf?
Die JVM ist auf die 1.6 von sun gesetzt:
Code:
echo $JAVA_HOME
/usr/lib/jvm/java-6-sun
sowie
Code:
update-alternatives --config java
There are 4 alternatives which provide `java'.
Selection Alternative
-----------------------------------------------
1 /usr/bin/gij-4.2
+ 2 /usr/lib/jvm/java-gcj/jre/bin/java
* 3 /usr/lib/jvm/java-6-sun/jre/bin/java
4 /usr/lib/jvm/java-1.5.0-sun/jre/bin/java
und noch
Code:
java -version
java version "1.6.0_03"
Java(TM) SE Runtime Environment (build 1.6.0_03-b05)
Java HotSpot(TM) Client VM (build 1.6.0_03-b05, mixed mode, sharing)
Wo kommt denn da jetzt gnu-gcj auf einmal her?
2. Hab ich evtl. bei der Codebase was falsch gemacht?
Das verlinkte Tutorial hier: http://java.sun.com/javase/6/docs/technotes/guides/rmi/codebase.html
hab ich gelesen, aber ich sehe soweit keinen Fehler meinerseits.....
Bin für jeden Tip dankbar.......
P.S.: OS ist Ubuntu Gutsy