Avatar billede fafner Nybegynder
11. december 2001 - 20:56 Der er 14 kommentarer

ClassNotFoundException: xxx_stub og Visual Age 4.0!

Hejsa alle sammen...
Jeg har et lille problem med noget RMI som jeg tænkte at nogen herinde måske kendte til / havde været ude for.

Jeg har taget Javas Tutotrial ang. RMI importeret den i VA. Jeg har sat mine rettigheder og har lavet en _stub klasse med VA\'s tool-> Generate RMI -> JDK 1.2 stub/skel.
Alt ser ud som det skal, RMIregi\'en er startet på den rigtige port.

Har prøvet både under Windows XP og Win2K

MEN den kommer med nedenstående fejl.

Får den samme fejl ligegyldigt hvilket anden Java program med RMI jeg køre..

100 point et klap på skulderen og en kold bajer til den der har en løsning.

-Mads

RemoteException occurred in server thread; nested exception is:
    java.rmi.RemoteException: java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:
    java.lang.ClassNotFoundException: engine.ComputeEngine_Stub
java.lang.ClassNotFoundException: engine.ComputeEngine_Stub
    java.lang.Throwable(java.lang.String)
    java.lang.Exception(java.lang.String)
    java.lang.ClassNotFoundException(java.lang.String)
    int java.io.ObjectInputStream.inputObject(boolean)
    java.lang.Object java.io.ObjectInputStream.readObject(boolean)
    java.lang.Object java.io.ObjectInputStream.readObject()
    java.lang.Object sun.rmi.server.UnicastRef.unmarshalValue(java.lang.Class, java.io.ObjectInput)
    void sun.rmi.server.UnicastServerRef.dispatch(java.rmi.Remote, java.rmi.server.RemoteCall)
    java.lang.Object sun.rmi.transport.Transport$1.run()
    java.lang.Object java.security.AccessController.doPrivileged(java.security.PrivilegedExceptionAction, java.security.AccessControlContext)
    boolean sun.rmi.transport.Transport.serviceCall(java.rmi.server.RemoteCall)
    void sun.rmi.transport.tcp.TCPTransport.handleMessages(sun.rmi.transport.Connection, boolean)
    void sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run()
    void java.lang.Thread.run()


java.rmi.ServerException: RemoteException occurred in server thread; nested exception is:
    java.rmi.RemoteException: java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:
    java.lang.ClassNotFoundException: engine.ComputeEngine_Stub
java.lang.ClassNotFoundException: engine.ComputeEngine_Stub
    java.lang.Throwable(java.lang.String)
    java.lang.Exception(java.lang.String)
    java.lang.ClassNotFoundException(java.lang.String)
    int java.io.ObjectInputStream.inputObject(boolean)
    java.lang.Object java.io.ObjectInputStream.readObject(boolean)
    java.lang.Object java.io.ObjectInputStream.readObject()
    java.lang.Object sun.rmi.server.UnicastRef.unmarshalValue(java.lang.Class, java.io.ObjectInput)
    void sun.rmi.server.UnicastServerRef.dispatch(java.rmi.Remote, java.rmi.server.RemoteCall)
    java.lang.Object sun.rmi.transport.Transport$1.run()
    java.lang.Object java.security.AccessController.doPrivileged(java.security.PrivilegedExceptionAction, java.security.AccessControlContext)
    boolean sun.rmi.transport.Transport.serviceCall(java.rmi.server.RemoteCall)
    void sun.rmi.transport.tcp.TCPTransport.handleMessages(sun.rmi.transport.Connection, boolean)
    void sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run()
    void java.lang.Thread.run()


java.rmi.RemoteException: java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:
    java.lang.ClassNotFoundException: engine.ComputeEngine_Stub
java.lang.ClassNotFoundException: engine.ComputeEngine_Stub
    java.lang.Throwable(java.lang.String)
    java.lang.Exception(java.lang.String)
    java.lang.ClassNotFoundException(java.lang.String)
    int java.io.ObjectInputStream.inputObject(boolean)
    java.lang.Object java.io.ObjectInputStream.readObject(boolean)
    java.lang.Object java.io.ObjectInputStream.readObject()
    java.lang.Object sun.rmi.server.UnicastRef.unmarshalValue(java.lang.Class, java.io.ObjectInput)
    void sun.rmi.server.UnicastServerRef.dispatch(java.rmi.Remote, java.rmi.server.RemoteCall)
    java.lang.Object sun.rmi.transport.Transport$1.run()
    java.lang.Object java.security.AccessController.doPrivileged(java.security.PrivilegedExceptionAction, java.security.AccessControlContext)
    boolean sun.rmi.transport.Transport.serviceCall(java.rmi.server.RemoteCall)
    void sun.rmi.transport.tcp.TCPTransport.handleMessages(sun.rmi.transport.Connection, boolean)
    void sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run()
    void java.lang.Thread.run()


    void sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(java.lang.Exception)
    void sun.rmi.transport.StreamRemoteCall.executeCall()
    java.lang.Object sun.rmi.server.UnicastRef.invoke(java.rmi.Remote, java.lang.reflect.Method, java.lang.Object [], long)
    void sun.rmi.registry.RegistryImpl_Stub.rebind(java.lang.String, java.rmi.Remote)
    void java.rmi.Naming.rebind(java.lang.String, java.rmi.Remote)
    void engine.ComputeEngine.main(java.lang.String [])
Avatar billede nico26 Nybegynder
11. december 2001 - 21:00 #1
kører rmiregistry, og har du lavet en policy-fil
Avatar billede fafner Nybegynder
11. december 2001 - 21:02 #2
Yeps rmiregistry køre og yeps policy filen er sat til at alt kan lade sig gøre :)
Avatar billede nico26 Nybegynder
11. december 2001 - 21:05 #3
jeg har selv haft en masse bøvl med visual age og rmi, har du prøvet med jdk
Avatar billede fafner Nybegynder
11. december 2001 - 21:06 #4
nope... men det bliver jeg jo nok tvunget til kan jeg fornemme :)
Avatar billede nico26 Nybegynder
11. december 2001 - 21:07 #5
hvad skriver du som hostnavn?
Avatar billede fafner Nybegynder
11. december 2001 - 21:08 #6
localhost eller 127.0.0.1
Avatar billede nico26 Nybegynder
11. december 2001 - 21:10 #7
og du skriver også java.security.policy=policyfilanvn under properties??
Avatar billede fafner Nybegynder
11. december 2001 - 21:11 #8
Problemet med jdk er at windows ikke længre er så glad for alt det der dos rytteri så man skal sætte alting manuelt hvilket godt kan give en usikkerhed omkring man selv er åndsvag eller det bare ikke fungere... :´|
Avatar billede nico26 Nybegynder
11. december 2001 - 21:14 #9
tjo, men visual age er skod! prøv evt. at sende dit program så kan jeg prøve, jeg har fået det til at virke for nylig

nico@pc.dk
Avatar billede fafner Nybegynder
11. december 2001 - 21:17 #10
Sender lige Repository\'et til dig.. Det skulle indeholde det hele..
Avatar billede nico26 Nybegynder
11. december 2001 - 21:22 #11
prøv denne policyfil i stedet:

grant {
    permission java.net.SocketPermission \"*:1024-65535\",
        \"connect,accept\";
    permission java.net.SocketPermission \"*:80\", \"connect\";
};
Avatar billede fafner Nybegynder
11. december 2001 - 21:30 #12
Nope det samme... den jeg bruger burde også give adgang til al\' ting... :) Har prøvet samme resultat..
Avatar billede fafner Nybegynder
11. december 2001 - 22:28 #13
Har fået løs det nu!.. Det viser sig at man skal... i nævnte rækkefølge.

Add en policy fil til projektet (ikke sikkert dette behøves). (både under resources og properties)

stoppe RMIregestryen

sætte sin resource path under options/resources til at peje på program files/...\'blabla\'../Ide/project_resources/\'projekt name\'
Når dette er editet ind skal man starte igen

og så skulle det virke!

Men det er da meget logisk og nemt at regne ud

-Mads <- en let bitter mand der har brugt alt for lang tid på noget skrammel!

Men ellers tusind tak for hjælpen nico..
Avatar billede nico26 Nybegynder
11. december 2001 - 23:50 #14
yep, det er et super logisk program :)

så er det er trods alt nemmere fra dossen:

start rmiregistry
java -Djava.security.policy=java.policy engine.ComputeEngine
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester