08. december 2004 - 17:44Der er
23 kommentarer og 1 løsning
rmi op at køre
Hej,
jeg ved ikke om jeg pladserer dette spørgsmål det rigtige sted, men nu prøver jeg.
Jeg har en fungerende rmi kode, men kan ikke få den op at køre.
Jeg har koden liggende i eclipse, så den skulle være i java format.
Derefter går jeg ind i en dospromt og ind i mappen hvor jeg har koden liggende. Når jeg gør følgende: ---------------- ud fra KontoImpl.class laves RMI-stub-klassen (KontoImpl_Stub.class): < dette forstår jeg ikke! rmic KontoImpl ----------------- får jeg denne fejl: rmic blev ikke genkendt som en intern eller ekstern kommando, et program eller batchfil.
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
nu har jeg smidt alle filerne den i j2sdk1.4.2. Herfra ser det ud til at køre. Når såvidt til at sige start java CardServer, men når jeg siger start java CardClient kommer den med en hulans lang fejlmeddelelse i stil med: java.rmi.notboundexeption: card m.m.
det er en meget lang sag og jeg kan ikke copy/paste fra dos-promt, men her er noget af den: java.rmi.NotBoundException: card at sun.rmi.registry.RagistryImlp.lookup<RegistryImpl.java:106> at sun.rmi.registry.RegistryImlp_Skel.dispatch<UnknownSource> at.....osv osv
java.security.AccessControException: access denied <java.net.SocketPermission 127.0.0.1:1099 connect, resolve> at java.security.AccessControlContext.checkPermission<AccessControlContext.java:269> at java.security.AccessController.chedkPermission<AccessController.java:401> at java.lang.SecurityManager.checkConnect>SecurityManager.java:524> at java.lang.SecurityManager.checkConnect>SecurityManager.java:1026> at java.net.Cocket.connect<Socket.java:446> at java.net.Cocket.connect<Socket.java:402> at java.net.Cocket.<init><Socket.java:309> at java.net.Cocket.<init><Socket.java:124> at sun.rmi.transport.proxy.RMIDirectSocketFactory.createCocket<RMIDirectSocketFactory.java:22> sun.rmi.transport.proxy.RMIDirectSocketFactory.createCocket<RMIDirectSocketFactory.java:128> at sun.rmi.transport.tcp.TCPEndpoint.newSocket<TCPEndpoint.java:562> at sun.rmi.transport.tcp.TCPChannel.createConnection<TCPChannel.java:185> at sun.rmi.transport.tcp.TCPChannel.createConnection<TCPChannel.java:171> at sun.rmi.server.UnicastRef.newCall<UnicastRef.java:313> at sun.rmi.registry.RegistryImpl_Stub.rebind<Unknown Source> at java.rmi.Naming.rebind<Naming.java:160> at CardSErver.main<CardSErver.java:11>
Puuuhhhha, det var fejlen. Har ikke lige tjekket igennem om jeg har skrevet helt rigtigt af, men alle linierne er det ihvertfald, håber det kan bruges.....
jeg har nu slettet: System.setSecurityManager( new RMISecurityManager()); Fra CardServer klassen, men får fortsat samme fejl....
Hvordan sikrer jeg mig at den er compilet? Og, hvordan får man lavet de der stub og - skel_klasser? Jeg har dem i denne kode, men hvordan er de i sin tid blevet lavet?
og hvad der er allermest fremragende er at du skriver:
"Hvad er RMI godt til og hvad er det ikke godt til RMI er meget godt til client/server løsninger på LAN. Det er ikke så velegnet til løsninger hvor netværket er internettet. Det giver ofte problemer med firewalls og porte der skal åbnes. Man kan godt få det til at virke, men til brug over internet er SOAP RPC over HTTP (Web Services) bedre.
Som hovedregel gælder det at fordelene ved RMI er store, når man har mange funktioner med mange argumenter som ikke fylder meget, mens det ikke er velegnet til en funktion med et argument som kan være meget stort (som f.eks. fil upload)."
Hvorfor det er begrundelse nok for mig til at jeg ikke skal bruge rmi da jeg skal køre programmet over internettet;-) Vil derfor kaste mig over et andet område...hvordan gør jeg det så bedst? Er det noget med applets? Skal have noget der er forholdsvis nemt at lave og som holder mig fra de sene fortvivlende nattetimer....
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.