2012-12-05 3 views
0

J'ai un serveur Corba qui tourne dans un système auquel je veux accéder depuis un autre ordinateur sur le même réseau local. J'ai essayé d'accéder au serveur IP de la machine serveur (code attaché); mais je reçois l'erreur mentionnée ci-dessous:Accès à distance Corba

orbd -ORBInitialPort 1050 -ORBInitialHost <serverip>& 

java HelloServer -ORBInitialPort 1050 -ORBInitialHost <serverip>& 

java HelloClient -ORBInitialPort 1050 -ORBInitialHost <serverip>& 

WARNING: "IOP00410201: (COMM_FAILURE) Connection failure: socketType: IIOP_CLEAR_TEXT; hostname: 127.0.1.1; port: 43944" 
org.omg.CORBA.COMM_FAILURE: vmcid: SUN minor code: 201 completed: No 
  • Il dit nom d'hôte comme 127.0.1.1, mais ce n'est pas le nom du serveur i spécifié.
  • Le numéro de port est différent de celui que j'ai spécifié
  • Le serveur n'a reçu aucune connexion et attend toujours.

Quelqu'un peut-il m'aider s'il vous plaît?

+1

Laquelle des applications ci-dessus lève l'exception? client ou serveur? – tuergeist

+0

Pouvez-vous nous montrer le code de 'HelloClient' et' HelloServer'? –

Répondre

-2

Merci ppl. J'ai changé le fichier/etc/hosts conf. Changé l'ip localhost, et comment je suis en mesure d'accéder au serveur distant.

1

Les programmes CORBA ne traitent pas directement les adresses IP du serveur. Lorsque vous voulez accéder à un objet, vous avez besoin de sa référence IOR ou d'un objet interchangeable. IOR contient l'adresse de la machine qui doit être contactée à propos de l'objet, un identifiant d'objet, et d'autres administrateurs.

Il existe 2 façons les plus courantes d'obtenir IOR de certains objets. L'approche de bas niveau est que le serveur convertit en chaîne et écrit cette chaîne dans un fichier. Le client lit cette chaîne et la convertit en référence d'objet.

Une autre approche consiste à faire fonctionner le service de noms qui est chargé de convertir les noms en IOR. Quelque chose comme DNS pour les objets.

Un programme CORBA typique passerait par cette danse uniquement pour un ou plusieurs objets "racine", et les références d'objet pour d'autres objets seraient renvoyées comme valeurs de retour d'appels à ces objets racine.

+2

Tout cela est vrai, mais je ne pense pas que ce soit pertinent. Les adresses et les ports sont fournis aux programmes afin qu'ils puissent se connecter à l'ORB. Cela est nécessaire pour que les programmes puissent se connecter au service de nommage et ainsi de suite, à partir duquel ils peuvent ensuite récupérer les objets identifiés par les IOR, comme vous le décrivez. Donc, les programmes ont vraiment besoin de l'adresse et du port du serveur ORB. –

+0

Sauf s'ils ne se connectent pas au service de nommage mais directement à l'IOR strignifié, ou si le programme attend un IOR stringfied du service de nommage et non IP de celui-ci. Je suppose que pour le service de nommage du monde hello très simple n'est pas du tout impliqué mais IORs stringfied –

+0

L'exemple ci-dessus utilise java's build dans le service de nommage fourni par le processus ordonné démon – tuergeist