18. juli 2003 - 00:31
Der er
13 kommentarer og 1 løsning
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
det er rmihello jeg kører (og hvor fejlen kommer)
Et vildt skud uden at have prøvet at compile dine ting... Du har ikke en policy fil... Prøv at lave en fil der hedder: simple.policy med følgende indhold grant { // Allow everything for now permission java.security.AllPermission; }; Og kør så cilent med: java -Djava.security.policy=simple.policy "Navn" og server på samme måde.
Jeg har fået koden til at virke nu ved at compile dine stubs med: rmic -v1.2 HelloObserver rmic -v1.2 RmiHello - Starte rmiregistry med start rmiregistry - og så kører server med: java -Djava.security.policy=simple.policy RmiHello - og så starte klient med: java -Djava.security.policy=simple.policy HelloObserver Skal siges jeg bruger batfiler til dette job... Hvis du vil have koden eller batfilerne så skriv det og så din mail...
X:\rmiobserver>java -Djava.security.policy=simple.policy -Djava.rmi.server.codeb ase=file://x:\rmiobserver RmiHello New RmiHello binding RmiHello err: access denied (java.io.FilePermission \rmiobserver read)
det var med olly´s kommentar
Får samme med dit svar... mora@nospam.dk Gider du sende bat filerne, og stub/skel jeg får en anden fejl hvis jeg udelukker codebase RmiHello err: RemoteException occurred in server thread; nested exception is: java.rmi.UnmarshalException: error unmarshalling arguments; nested exce tion is: java.lang.ClassNotFoundException: RmiHello_Stub java.rmi.ServerException: RemoteException occurred in server thread; nested exc ption is:
Den sidste fejl skyldes formentlig at Stub filerne ikke er i RMIregistry's classpath. Det skal de. så lav en lille RR.bat med: set CLASSPATH=hvor-stub-filerne-nu-ligger rmiregistry og start den i.s.f. rmiregistry direkte.
Jeg hentede koden. Rettede nodename til localhost. Og så virkede: javac *.java rmic HelloObserver rmic RmiHello start rmiregistry start java RmiHello pause java HelloObserver
Iøvrigt et upædagogisk eksempel da jeg også starter rmiregistry direkte og "udnytter" at alt bliver kørt fra samme directory. Men lav en RR med classpath og start den.
18. juli 2003 - 08:58
#10
Og efter at have fjernet udkommenteringen af security manageren: javac *.java rmic HelloObserver rmic RmiHello start rmiregistry start java -Djava.security.policy=grantall.policy RmiHello pause java -Djava.security.policy=grantall.policy HelloObserver (men med den policy er der ikke meget grund til at køre med security manager)
18. juli 2003 - 09:03
#11
Den her policy er lidt mer restriktiv: grant { permission java.net.SocketPermission "localhost:1099", "connect,resolve"; permission java.net.SocketPermission "localhost:1024-", "connect,accept,resolve"; }; (localhost skal naturligvis rettes til)
18. juli 2003 - 12:58
#12
Så når jeg bruger registry i programmet, burde den ikke kræve stub filerne er i samme dir (pt. bruger jeg jo standalone). arne_v svarer du lige ? syntes du har fortjent points´ne med et så grundigt svar :)
18. juli 2003 - 13:04
#13
Hvis du laver registry i selve server programmet med createRegistry, så skal begge stub-filerne bare være i server programmets classpath.
18. juli 2003 - 13:04
#14
OK
Kurser inden for grundlæggende programmering