Ik ben op dit moment bezig een Client/Server applicatie te maken die gebruik maakt van RMI.
De server is een java class terwijl het de bedoeling is dat de client een applet is. De client is echter niet zomaar een client, de client logt namelijk in bij de server EN hij voert zichzelf ook in in een rmiregistry, de client is dus als het ware ook een kleine server(omdat de server af en toe wat methoden zal aanroepen op de client).
Kortom, de client en server registreren zichzelf allebei op een (in dit geval zelfde) rmiregistry zodat ze aan allebei de kanten methoden kunnen aanoepen op elkaar.
Nou zal dit geen probleem zijn als zowel de client als server een applicatie zijn, het is dan simeplweg opstarten met de juiste policy-file(zelfgemaakte) meegegeven en het werkt.
Tijdens het testen was de client nog een gewoon een applicatie en toe werkte het perfect(de client en server vonden elkaar wederzijds vlekkeloos op de rmiregistry). Nu heb ik de client omgebouwd tot een applet en krijg ik de volgende foutmelding op de server zelf:
classcastException: Servant_Stub
(rest van stacktrace)
De client(applet) vindt de server en kan alles daarop aanroepen, de server probeert de client weer te pakken te krijgen maar kan denk ik de stub niet krijgen.
Aangezien het als applicatie wel werkte denk ik dat dit puur te maken heeft met de security van de applet. Die heeft denk ik niet de permissie om de stub van de schijf te lezen en door te geven aan de server. Weet iemand hoe ik die permissie wel kan regelen?
Weet iemand of het uberhaupt mogelijk is om met een applet RMI te gebruiken? ik kan de client(als applet zijnde) blijkbaar wel binden aan de rmiregistry(geen foutmelding bij binden) maar anderen kunnen de stub blijkbaar niet krijgen.
En als het niet mogelijk is, weet iemand dan een manier om de server in staat te stellen de clients te bereiken, afgezien van method-returns die via rmi dus gewoon werken.
Mijn programma is een soort chatclient met een centrale server, hoe kan ik aan alle clients(die bij de server bekend zijn) dan een bericht sturen als er een bericht is binnengekomen als ik ze niet kan bereiken? een andere methode zou zijn dat de clients constant een methode aanroepen om te checken of er berichten zijn maar dat is niet echt het toppunt van efficientie te noemen.
De server is een java class terwijl het de bedoeling is dat de client een applet is. De client is echter niet zomaar een client, de client logt namelijk in bij de server EN hij voert zichzelf ook in in een rmiregistry, de client is dus als het ware ook een kleine server(omdat de server af en toe wat methoden zal aanroepen op de client).
Kortom, de client en server registreren zichzelf allebei op een (in dit geval zelfde) rmiregistry zodat ze aan allebei de kanten methoden kunnen aanoepen op elkaar.
Nou zal dit geen probleem zijn als zowel de client als server een applicatie zijn, het is dan simeplweg opstarten met de juiste policy-file(zelfgemaakte) meegegeven en het werkt.
Tijdens het testen was de client nog een gewoon een applicatie en toe werkte het perfect(de client en server vonden elkaar wederzijds vlekkeloos op de rmiregistry). Nu heb ik de client omgebouwd tot een applet en krijg ik de volgende foutmelding op de server zelf:
classcastException: Servant_Stub
(rest van stacktrace)
De client(applet) vindt de server en kan alles daarop aanroepen, de server probeert de client weer te pakken te krijgen maar kan denk ik de stub niet krijgen.
Aangezien het als applicatie wel werkte denk ik dat dit puur te maken heeft met de security van de applet. Die heeft denk ik niet de permissie om de stub van de schijf te lezen en door te geven aan de server. Weet iemand hoe ik die permissie wel kan regelen?
Weet iemand of het uberhaupt mogelijk is om met een applet RMI te gebruiken? ik kan de client(als applet zijnde) blijkbaar wel binden aan de rmiregistry(geen foutmelding bij binden) maar anderen kunnen de stub blijkbaar niet krijgen.
En als het niet mogelijk is, weet iemand dan een manier om de server in staat te stellen de clients te bereiken, afgezien van method-returns die via rmi dus gewoon werken.
Mijn programma is een soort chatclient met een centrale server, hoe kan ik aan alle clients(die bij de server bekend zijn) dan een bericht sturen als er een bericht is binnengekomen als ik ze niet kan bereiken? een andere methode zou zijn dat de clients constant een methode aanroepen om te checken of er berichten zijn maar dat is niet echt het toppunt van efficientie te noemen.