[JAVA/RMI] Connecten werkt niet.

Pagina: 1
Acties:

  • Rempage0611
  • Registratie: December 2000
  • Laatst online: 23-09-2025

Rempage0611

9405 WP @ 2x SMA Sunny Boy

Topicstarter
Ik ben bezig met het voor elkaar krijgen dat ik via RMI, waarbij de RMIregistry op de linux server draait alsmede een server java programma, een client te laten connecten via het internet.

Ik heb nu dus een redelijk simpel programma, dat gewoon iets als hallo moet zeggen.

De volgende stukken code zijn relevant:
Server:
code:
1
System.setSecurityManager(new RMISecurityManager());

Client:
code:
1
TaskBag myServerObject = (TaskBag) Naming.lookup "rmi://"+hostIP+":1099/myRMIImplInstance");


Verder heb ik een policy die alles open zet.

Het probleem is dat ik de volgende melding krijg:
Exception occured: java.rmi.ConnectException: Connection refused to host: 127.0.
0.1; nested exception is:
java.net.ConnectException: Connection refused: connect

Poort 1099 staat open op de firewall en toch kan ik niet connecten. Ook geeft de error de waarde 127.0.0.1 aan, wat weer zou betekenen dat hij met zichzelf wil connecten. Wie kan mij helpen? Ik heb het halve internet afgezocht en niks kunnen vinden zodat ik kan connecten met de server.

Thnx.

  • Robtimus
  • Registratie: November 2002
  • Laatst online: 19:33

Robtimus

me Robtimus no like you

Heb je wel in de server Naming.bind() of Naming.rebind() aangeroepen, met goede host en poort?

En print in de client eens vlak voor die stap dat hostIP eens, kijken of dat wel klopt.

More than meets the eye
There is no I in TEAM... but there is ME
system specs


  • Rempage0611
  • Registratie: December 2000
  • Laatst online: 23-09-2025

Rempage0611

9405 WP @ 2x SMA Sunny Boy

Topicstarter
Ik heb nu aan de server:
Naming.rebind("127.0.0.1/myRMIImplInstance" , implementation);
Toegevoegd. Dit helpt niets. De client heeft wel het goede ip, dat heb ik al nagekeken.

  • Robtimus
  • Registratie: November 2002
  • Laatst online: 19:33

Robtimus

me Robtimus no like you

Uit een project van school:
Java:
1
Naming.rebind("rmi://" + bindadres + ":" + port + "/DigLib", rmifacade);
Probeer het eens met dat rmi:// en de poort erbij. Als het dan nog niet werkt moet je denk ik eens kijken naar je SecurityManager, want verder is het vrijwel hetzelfde als in dat project, en dat werkt gewoon goed.

More than meets the eye
There is no I in TEAM... but there is ME
system specs


  • JeroenTheStig
  • Registratie: Mei 2000
  • Laatst online: 05:23
Heb je je server opgestart met de volgende commando?
code:
1
java -Djava.security.manager -Djava.security.policy=rmi.policy <classfile>


En de client:
code:
1
java -Djava.security.policy=rmi.policy <classfile>

  • Rempage0611
  • Registratie: December 2000
  • Laatst online: 23-09-2025

Rempage0611

9405 WP @ 2x SMA Sunny Boy

Topicstarter
Ik heb de server en client nu gestart volgens de manier van BoKToR, en de server rebind regel verandert in:
Naming.rebind("rmi://127.0.0.1:1099/myRMIImplInstance" , implementation);

Maar nog steeds no-go ;(

[ Voor 6% gewijzigd door Rempage0611 op 08-06-2003 20:17 ]


Verwijderd

Je kunt ook de SecurityManager overloaden en je eigen overloaded (lege) methodes gebruiken om security zaken te omzielen.

  • Rempage0611
  • Registratie: December 2000
  • Laatst online: 23-09-2025

Rempage0611

9405 WP @ 2x SMA Sunny Boy

Topicstarter
Ik denk toch dat dit de verkeerde kant op gaat. Als ik alle programma`s nml bij elkaar zet, werkt het prima, ik denk dat de client gewoonweg niet op de goede poort connect (1099)

Maar hoe verander ik dat?

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Rempage0611 schreef op 08 June 2003 @ 17:51:
Poort 1099 staat open op de firewall en toch kan ik niet connecten. Ook geeft de error de waarde 127.0.0.1 aan, wat weer zou betekenen dat hij met zichzelf wil connecten. Wie kan mij helpen? Ik heb het halve internet afgezocht en niks kunnen vinden zodat ik kan connecten met de server.
Een beetje een domme vraag: Draait er wel een rmiregistry server op die server (achter die default poort van rmi)?

En je het probeert te connecten naar 127.0.0.1, maar dat wil je blijkbaar niet? Zoja, wat staat er in hostIP?

[ Voor 3% gewijzigd door ACM op 08-06-2003 21:26 ]


  • Rempage0611
  • Registratie: December 2000
  • Laatst online: 23-09-2025

Rempage0611

9405 WP @ 2x SMA Sunny Boy

Topicstarter
JA de rmi registry draait op de Server, als ik de regel met hostIP erin print krijg ik:

rmi://111.222.333.444:1099/myRMIImplInstance
Dit lijkt dus goed..

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Dan hoop ik dat er niet 111.222.333.444 nog als ip tussenstaat, magoed dat zal wel niet. ;)

Evt kan je met tcpdump op je server es kijken wat er allemaal aan verkeer voorbij komt op poort 1099, dus _of_ er wel verkeer komt enzo. Ik heb er zelf ook wel wat geklooi mee gehad toen ik het laatst iets ermee moest doen :)

Verwijderd

(Voor het geval je misschien Vmware geinstalleerd hebt staan; anders beschouw dit maar als niet gepost :P):
Op school liepen we vast dankzij de netwerkkaarten van Vmware; hij probeerde steeds contact te zoeken met deze ipv de echte netwerkkaart.
Wanneer wij in de code van de Server gebruik maken van Naming.bind(ip enz) dan connect de Client met de adapter van VMWare (DIT WERKT BIJ ONS DUS NIET):
Naming.bind("//ip/Hello", new Hello("Hello World!"));

Wanneer wij in de code van de Server gebruik maken van Naming.rebind("Hello", new Hello("Hello World!")); en dan bij de VM arguments zetten: -Djava.rmi.server.hostname=ip dan werkt het wel.

[ Voor 55% gewijzigd door Verwijderd op 09-06-2003 23:18 ]

Pagina: 1