/ Forside / Teknologi / Udvikling / C/C++ / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
C/C++
#NavnPoint
BertelBra.. 2425
pmbruun 695
Master_of.. 501
jdjespers.. 500
kyllekylle 500
Bech_bb 500
scootergr.. 300
gibson 300
molokyle 287
10  strarup 270
Corba problem c++ server til tnameserv
Fra : Jacob Just


Dato : 07-11-02 15:51

Hej,
Jeg har et lille corba problem. Som Name Server bruger jeg tnameserv, og
denne vil jeg gerne connecte til fra min c++ server som bruger Mico. Nogen
der ved hvordan.

Hvis det ikke kan lade sig gøre, vil jeg gerne connecte til nsd fra java
server?

Håber nogen kan hjælpe, det har drillet i lang tid
Mvh. Jacob Just



 
 
Mogens Hansen (07-11-2002)
Kommentar
Fra : Mogens Hansen


Dato : 07-11-02 20:17


"Jacob Just" <Jacob_Just@mail1.stofanet.dk> wrote in message
news:<3dca7db7$0$11429$ba624c82@nntp02.dk.telia.net>...

> Jeg har et lille corba problem. Som Name Server bruger jeg tnameserv,
> og denne vil jeg gerne connecte til fra min c++ server som bruger
> Mico. Nogen der ved hvordan.

Hvis tnameserv implementerer CosNaming interfacet burde det kunne lade sig
gøre.
Jeg brugte i sidste uge Mico til at forbinde op til en name service.

Programmetisk set er måden man connecter til en name service fuldstændigt
standardiseret:
<ikke test C++ kode>

#include <iostream>
#include <CosNaming.hh> // ORB specific file-name

using namespace std;

int main(int argc, char * argv[])
{

try {
// Initialize orb
CORBA::ORB_var orb = CORBA::ORB_init(argc, argv);

// Find the naming service
CORBA::Object_var obj =
orb->resolve_initial_references("NameService");
CosNaming::NamingContext_var ns =
CosNaming::NamingContext::_narrow(obj);

// use the name service

catch (const CORBA::Exception & e) {
cerr << "Uncaught CORBA exception: " << e << endl;
return 1;
} catch (...) {
cerr << "Uncaught C++ exception: " << endl;
return 1; }
return 0;
}

</ikke testet C++ kode>

Jeg kan varmt anbefale bogen:
Advanced CORBA Programming with C++
Michi Henning, Steve Vinoski
ISBN 0-201-37927-9
hvis man skal arbejde med CORBA i C++. Der er almindelig bred enighed om at
det ikke fåes bedre.

Problemet er at ovenstående ikke er tilstrækkeligt.

ORB'en skal konfigureres, så den kan finde endpoint til name service, og
måden det gøres på er ORB specifik.
Ofte kan man enten specificere nameservice i en konfigurations-fil eller som
en kommando-linie parameter.
Kommando-linien kan typisk være noget i stil med

-ORBInitRef NameService=corbaloc:iiop:big_iron:1234/NameService

hvor maskinen hedder "big_iron" og name service lytter på port 1234
Kig i dokumentationen til Mico.
Så vidt jeg husker skal der sættes en environment variabel MICORC som peger
på et fil, hvor konfigurationen så kan skrives. F.eks.
<micorc.txt - ikke testet>
-ORBNamingAddr corbaloc:iiop:big_iron:1234
</micorc.txt - ikke testet>

>
> Hvis det ikke kan lade sig gøre, vil jeg gerne connecte til nsd fra
> java server?

Det er meget tæt på at være eksakt det samme, der skal gøres i Java, Python
etc. for at få fat på naming service.

Venlig hilsen

Mogens Hansen



Jacob Just (09-11-2002)
Kommentar
Fra : Jacob Just


Dato : 09-11-02 18:50

Hej,
Mange tak for hjælpen nu svinger det bare
Mvh. Jacob Just
"Mogens Hansen" <mogens_h@dk-online.dk> skrev i en meddelelse
news:aqee0b$rjm$1@news.cybercity.dk...
>
> "Jacob Just" <Jacob_Just@mail1.stofanet.dk> wrote in message
> news:<3dca7db7$0$11429$ba624c82@nntp02.dk.telia.net>...
>
> > Jeg har et lille corba problem. Som Name Server bruger jeg tnameserv,
> > og denne vil jeg gerne connecte til fra min c++ server som bruger
> > Mico. Nogen der ved hvordan.
>
> Hvis tnameserv implementerer CosNaming interfacet burde det kunne lade sig
> gøre.
> Jeg brugte i sidste uge Mico til at forbinde op til en name service.
>
> Programmetisk set er måden man connecter til en name service fuldstændigt
> standardiseret:
> <ikke test C++ kode>
>
> #include <iostream>
> #include <CosNaming.hh> // ORB specific file-name
>
> using namespace std;
>
> int main(int argc, char * argv[])
> {
>
> try {
> // Initialize orb
> CORBA::ORB_var orb = CORBA::ORB_init(argc, argv);
>
> // Find the naming service
> CORBA::Object_var obj =
> orb->resolve_initial_references("NameService");
> CosNaming::NamingContext_var ns =
> CosNaming::NamingContext::_narrow(obj);
>
> // use the name service
>
> catch (const CORBA::Exception & e) {
> cerr << "Uncaught CORBA exception: " << e << endl;
> return 1;
> } catch (...) {
> cerr << "Uncaught C++ exception: " << endl;
> return 1; }
> return 0;
> }
>
> </ikke testet C++ kode>
>
> Jeg kan varmt anbefale bogen:
> Advanced CORBA Programming with C++
> Michi Henning, Steve Vinoski
> ISBN 0-201-37927-9
> hvis man skal arbejde med CORBA i C++. Der er almindelig bred enighed om
at
> det ikke fåes bedre.
>
> Problemet er at ovenstående ikke er tilstrækkeligt.
>
> ORB'en skal konfigureres, så den kan finde endpoint til name service, og
> måden det gøres på er ORB specifik.
> Ofte kan man enten specificere nameservice i en konfigurations-fil eller
som
> en kommando-linie parameter.
> Kommando-linien kan typisk være noget i stil med
>
> -ORBInitRef NameService=corbaloc:iiop:big_iron:1234/NameService
>
> hvor maskinen hedder "big_iron" og name service lytter på port 1234
> Kig i dokumentationen til Mico.
> Så vidt jeg husker skal der sættes en environment variabel MICORC som
peger
> på et fil, hvor konfigurationen så kan skrives. F.eks.
> <micorc.txt - ikke testet>
> -ORBNamingAddr corbaloc:iiop:big_iron:1234
> </micorc.txt - ikke testet>
>
> >
> > Hvis det ikke kan lade sig gøre, vil jeg gerne connecte til nsd fra
> > java server?
>
> Det er meget tæt på at være eksakt det samme, der skal gøres i Java,
Python
> etc. for at få fat på naming service.
>
> Venlig hilsen
>
> Mogens Hansen
>
>



Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408937
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste