java rmi

Fórumok

hali!

egy java rmi-vel működő kis alkalmazást próbálgatok összerakni, de sehogysem sikerül. Leszedtem egy rövid példaprogramot a netről, beraktam Eclipse projektbe, hibátlanul lefordul. Ezután elindítom az rmiregistry-t, majd megpróbálom futtatni a program szerver részét. Ekkor az alábbi sorban:

Naming.rebind("SAMPLE-SERVER" , Server);

ezt a hibát kapom:

Exception in thread "main" java.security.AccessControlException: access denied (java.net.SocketPermission 127.0.0.1:1099 connect,resolve)

van valakinek esetleg ötlete, hogy miért kapom ez a hibaüzenetet? az rmiregistry fut, az eclipse nem ad fordítási hibát, nem értem, hogy mi lehet...

kösz:
JJ

Hozzászólások

kell csinálni egy java.policy fájlt a következő tartalommal


grant {
  permission java.net.SocketPermission "*:1024-", "accept, connect, listen, resolve";
};

grant {
  permission java.net.SocketPermission "*:80", "connect";
};

a 80-as portra csatlakozás akkor kellhet ha http-n keresztül akarod az rmi kliens stubot áthúzni.

majd ezután ezt be kell tölteni. Ha resource fájlként akarod használni, akkor a következő pár sor a barátod:


        ClassLoader cl = getClass().getClassLoader();
        URL policyURL = cl.getResource("java.policy");
        System.setProperty("java.security.policy", policyURL.toString());
        System.setSecurityManager(new RMISecurityManager());

üdv
hege

Ne a mainből használd. A main() ugyanis statikus metódus (mi más lehetne), a getClass() -t pedig csak példányosított objektumon tudod használni. Legegyszerűbb megoldás, ha az alkalmazásod main-jéből egyszerűen hívsz egy new Application -t és az Application konstrukturában mókolsz tovább. Persze ez nem valami túl szofisztikált megoldás, de elsőre megteszi.

üdv
hege

Sziasztok

Bocs hogy beleszólok más topicjába csak emiatt nem akartam újat nyitni ugyanis hasonló a hiba
Azzal a különbséggel hogy nekem Windows-on produkál hasonló hibát (Linuxon még nem is frissitettem a javat) és a chat.gyaloglo.hu oldallal

A hibaüzenet

access denied ("java.net.SocketPermission"" 195.56.241.4:8888"" connect,resolve")

A 195.56.241.4 a whois szerint a szolgáltatóm szervere- vps-C338F104.magex.hu - nem a gyaloglo-é
A Vezérlőpult - Java - Security tabnál a
Security Level High-on van, az Exeption site listbe bele van téve a http://chat.gyaloglo.hu

kösz a válaszokat

Köszi, közben erre már rájöttem mert felhívtam a magex.hu oldalt, ahol megmondták hogy ők hostolják a gyaloglót. És véletlenül az én szolgáltatóm is a GTS azért gondoltam hogy a saját szolgáltató a hibás.
A hiba viszont vltozatlanul fennáll, a java a legújabb, 8 Update 31
Még azt tanácsolták hogy http helyett https-t is írjak be a Java/Security/Exeption Site List-be
Esetleg irjak be IP címet, esetleg portszámmal?
Vagy írjak az üzemeltetőnek?:)

Sajnos 8-as Javaval ez már nem fog többet működni.
Sandbox módban nincs tovább lehetőség socketek használatára.

A Gyaloglónak viszont a "béta" nevű kliense rendelkezik aláírással és így nem csak sandboxban tud futni és tud csatlakozni a szerveréhez. Ha belépéskor azt választod, működni fog.

Másik megoldás, hogy a Javat downgrade-elni kell 7-re.

rescu köszönöm a választ, béta klienssel bejött
De régebben - úgy értem fél éve - amióta ujra használgatom, állandóan pont a legújabb verzióra kellett frissíteni ahhoz hogy működjön, akkor más volt a hibaüzenet, nem emlékszem hogy mi
A 7-re downgrade az biztonsági kockázat, nem?

kösz

EGYELŐRE még nem, ha jól emélkszem áprilisig még kap frissítéseket. Inkább ne.

Amúgy találkoztam már egész kulturált Java applettel, ami ugyan applet-ként nem volt hajlandó futni, de volt a csomagban egy alkalmazásként futtatható osztály [ráadásul manifestben szépen megjelölve], úgyhogy letöltve az archívot szépen elfutott - dekstop alkalmazásként. Egy próbát megér. Árulkodó jel: a Jar manifest-ben (META-INF/MANIFEST.MF, ha jól emlékszem) van egy Main-Class: Lorem.Ipsum sor.

BlackY
--
"en is amikor bejovok dolgozni, nem egy pc-t [..] kapcsolok be, hanem a mainframe-et..." (sj)

7-essel a többi a Gyalogló többi változatának is mennie kell, ha a security exception site listen rajta van a chat.gyaloglo.hu

Ha nincs, akkor 7-essel és 8-assal is a "béta" nevűnek mennie kell (tehát nem kell downgrade sem), ha az aláírást elfogadod.

Sajnos ezekhez az appletekhez nincs desktop alkalmazásként futtatható osztály.