[JAVA-CORBA]ik krijg mn server niet aan de praat:foutmelding

Pagina: 1
Acties:

  • JeroenTheStig
  • Registratie: Mei 2000
  • Laatst online: 21:41
Ik ben bezig om een CORBA applicatie draaiende te krijgen, daarvoor heb ik eerst een paar simpele tutorials voor gebruikt. Het compileren gaat allemaal prima, ook het idl-bestandje is gecompileerd.

Maar als ik de boel wil draaien, krijg ik de volgende foutmelding:


ERROR: org.omg.CORBA.INITIALIZE: can't instantiate default ORB implementation co
m.inprise.vbroker.orb.ORB minor code: 0 completed: No
org.omg.CORBA.INITIALIZE: can't instantiate default ORB implementation com.inpri
se.vbroker.orb.ORB minor code: 0 completed: No
at org.omg.CORBA.ORB.create_impl(ORB.java:286)
at org.omg.CORBA.ORB.init(ORB.java:328)
at HelloServer.main(HelloServer.java:22)


Deze foutmelding krijg ik in zowel JBuilder 7, als in de simpele dos-venstertjes.
Ik heb ook geprobeerd om andere tutorials draaiende te krijgen, maar daar gaat het net zo hard fout.

tnameserv heb ik trouwens wel draaiende in een dosvenstertje.

Wie weet wat ik fout doe? Ik kom er echt niet meer uit

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 21:25
(jarig!)
Heb je Visibroker wel geinstalleerd? Ik neem tenminste aan dat die niet by-default meegeleverd wordt (correct me if I'm wrong) en het lijkt erop, dat het mis gaat bij het instantieren van het ORB object; het eerste ding dat je nodig hebt uit de Visibroker package.

  • JeroenTheStig
  • Registratie: Mei 2000
  • Laatst online: 21:41
ik heb Visibroker geinstalleerd, dat moet gewoon werken als ik in Jbuilder werk. Ik heb die hele borland enterprise server van internet geplukt. Dus daar ligt het niet aan denk ik

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 21:25
(jarig!)
Ik gok toch echt op een installatieprobleem, aangezien het al bij het initialiseren van de ORB fout gaat, dus nog voordat je er echt iets mee gedaan hebt. Geef je nog bepaalde argumenten mee aan ORB.init()? Zo ja, probeer het dan eens zonder argumenten? (Dan kan het daar in ieder geval niet aan liggen).

Weet je 100% zeker dat Visibroker goed geinstalleerd is? Kun je wel andere klassen uit de Visibroker package instantieren ('handmatig' dus).

  • JeroenTheStig
  • Registratie: Mei 2000
  • Laatst online: 21:41
package Server;

// The package containing our stubs.
import HelloApp.*;

// HelloServer will use the naming service.
import org.omg.CosNaming.*;

// The package containing special exceptions thrown by the name service
import org.omg.CosNaming.NamingContextPackage.*;

// All CORBA applications need the classes.
import org.omg.CORBA.*;

class HelloServer
{
public static void main(String args[])
{
try
{
// Create and initialize the ORB
ORB orb = ORB.init(args,null);

// Create the servant and register it with the ORB
HelloServant helloRef = new HelloServant();
orb.connect(helloRef);

// Get the root naming context
org.omg.CORBA.Object objRef = orb.resolve_initial_references("NameService");
NamingContext ncRef = NamingContextHelper.narrow(objRef);

// Bind the object reference in naming
NameComponent nc = new NameComponent("Hello", "");
NameComponent path[] = {nc};
ncRef.rebind(path,helloRef);

// Wait for invocations from clients
java.lang.Object sync = new java.lang.Object();
synchronized(sync)
{
sync.wait();
}
}
catch (Exception e)
{
System.err.println("ERROR: " + e);
e.printStackTrace(System.out);
}
}
}

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 21:25
(jarig!)
Naar aanleiding van de API documentatie lijkt je code me 100% correct. Zelf werk ik zelden met Java (en heb nog nooit wat met Java ORB's gedaan) dus ik denk dat ik je niet veel verder kan helpen. Ik heb nog steeds het idee dat het aan je Visibroker installatie ligt, maar dat had ik al gezegd en ook daar kan ik je niet mee helpen.

Misschien komt iemand anders nog met een nuttige suggestie, anders vrees ik dat je het zelf op zult moeten lossen.

edit:
Toch nog een suggestie; ik weet niet hoe Java omgaat met verschillende ORB's, maar zou het kunnen zijn dat 'ie dynamisch een ORB object probeert te instantiëren, en dat alleen werkt als je de Visibroker package al geimporteert hebt?

Zet eens:
Java:
1
2
import com.inprise.vbroker.*;
import com.inprise.vbroker.orb.*;
Boven je source file en probeer 't dan nog eens?

Het is een wilde gok, maar misschien helpt 't.

  • JeroenTheStig
  • Registratie: Mei 2000
  • Laatst online: 21:41
hmm, ik zal t eens proberen, maar het is wel vreemd, volgens mijn studieboeken moet het zo werken.

Wat ik ook probeer, ik blijf die foutmeldingen krijgen.

Volgens m'n boek moet ik het op de volgende manier runnen vanuit dos:

1. tnameserv -ORBInitialPort [nameserverport]
2. java HelloServer -ORBInitialHost [nameserverhost] -ORBInitialPort [nameserverport]

Misschien die ik hier dan wel iets vrezelijk fout?

  • JeroenTheStig
  • Registratie: Mei 2000
  • Laatst online: 21:41
Hmm nee, dat gaat ook niet werken. Nu wordt de ORB-class 2 maal geimporteerd, namelijk in de package org.omg.CORBA.* en in de package com.inprise.vbroker.orb.*.

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 21:25
(jarig!)
Hmm, dubbel importeren kan geen kwaad, lijkt me. Ik neem tenminste aan dat dit ontzettend vaak voorkomt (het zou toch belachelijk zijn als bijvoorbeeld de AWT package gebruik maakt van de Util package en dat je daarom niet zowel AWT als Util zou mogen importen?!).

Maar start 'm anders eens zonder argumenten op; misschien snapt 'ie je host en port niet (en die heeft 'ie ook niet nodig om ueberhaupt op te starten, lijkt me). Wel vreemd dat 'ie dan geen zinnigere foutmelding geeft though.

  • JeroenTheStig
  • Registratie: Mei 2000
  • Laatst online: 21:41
nee, zonder argumenten gaat hij net zo hard op z'n bek. ik heb nog geprobeerd dit toe te voegen:

ORB orb;
if(args.length > 1)
{
orb = ORB.init(args,null);
}
else
{
String[] args2 = new String[4];
args2[0] = "-ORBInitialHost";
args2[1] = "127.0.0.1";
args2[2] = "-ORBInitialPort";
args2[3] = "1701";
orb = ORB.init(args2,null);
}

helpt ook niet :(
ik word hier moedeloos van

  • JeroenTheStig
  • Registratie: Mei 2000
  • Laatst online: 21:41
kan het misschien aan de jdk versie liggen? Ik kan dat eens proberen, dan haal ik die ouwe 1.2.1 maar weer eens uit de kast ..

  • JeroenTheStig
  • Registratie: Mei 2000
  • Laatst online: 21:41
weet je wat? Ik trek gewoon een andere computer uit de kast, gooi er jdk1.2.1 erop, en wie weet werkt het daar wel.
Heb hier ook allerlei shit geinstalleerd van borland enterprise server enzo, misschien gaat hij daarom de fout in

  • Tuinhark
  • Registratie: April 2000
  • Laatst online: 22-08 20:24

Tuinhark

Retro

Misschien dat je hier wat aan hebt? http://www.javaworld.com/...9-2002/jw-0927-corba.html

Heb in het verleden ook wel iets met Java + Corba gedaan (lees: weet er nu eik niet veel meer van, dus kan je helaas niet concreet helpen), maar wat was het toch een bitch. :( Als je de keus/mogelijkheid hebt, raad ik je aan RMI te nemen instead. Het is mij persoonlijk beter bevallen.

:Y)

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

RMI en Corba kan je ook niet echt met elkaar vergelijken. Ik vond het in het begin ook super irritant maar dat kwam voornamelijk door JBuilder. Later zijn we het met de hand gaan doen en toen kreeg je wel een goed inzicht.

Corba heeft een broker architectuur in zich, waarmee je heel eenvoudg extra services aan een systeem kan toevoegen en je eigelijk ook niet druk hoeft te maken over de locaties van die services. Daarnaast kan je met Corba eenvoudig alles in verschillende talen implementeren en dat gaat met RMI niet.

Maar ben het verder met je eens dat je wel goed moet nadenken wanneer je Corba moet gebruiken en wanneer RMI. Als je systeem een beetje goed opzet, moet trouwens dat allemaal transparant kunnen gebeuren (lang leve de proxy design pattern),

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 21:25
(jarig!)
Als je toch aan de slag gaat met proxies, kun je naar mijn bescheiden mening net zo goed meteen CORBA gebruiken. Dan krijg je je proxies kado. Het opzetten van een eigen portable architectuur is immers minstens net zo ingewikkeld als het gebruiken van de bestaande doordachte CORBA architectuur.

Het grote voordeel van RMI is dat het simpel is en daardoor snel te implementeren (en dat je natuurlijk objects by value kan passen, wat met CORBA pas sinds versie 3.0 kan). Op het moment dat je die simpelheid los laat, is wat mij betreft het voordeel van RMI weg.

edit:
Maar daar ging het hier natuurlijk niet om. Als je toch de moeite gaat doen van het herinstalleren op een ander systeem, kun je misschien proberen om een andere ORB te installeren (JacORB of OpenORB ofzo; is nog gratis ook), tenzij je echt de geavanceerde features van Visibroker nog hebt (wat die ook mogen zijn). Hoe 'weet' Java trouwens welke ORB package 'ie moet instantiëren?

  • JeroenTheStig
  • Registratie: Mei 2000
  • Laatst online: 21:41
Ik ben nu bezig om JBuilder 7 op een andere computer te installeren. Het vreemde is dat een klasgenoot mij een project heeft gestuurd die het bij hem wel doet, maar bij mij niet. We gebruiken allebei JBuilder 7 enterprise. Daarbij gebruiken we de tnameserv uit de jdk1.3.1, en het idl bestand pakken we uit met idlj.exe van jdk1.3.1.

Bij hem werkt het wel, bij mij niet. 8)7

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Soultaker schreef op 03 november 2002 @ 16:32:
Als je toch aan de slag gaat met proxies, kun je naar mijn bescheiden mening net zo goed meteen CORBA gebruiken.
Wat ik ermee wou zeggen is dat als je gaat werken mbv het proxy design pattern, het niet zo heel veel uitmaakt op welke manier je communiceerd. Als je om die stubs maar een proxy wrapper kan plakken, dan is het niet meer belangrijk wat er nou achter zit want vanuit het systeem praat je dus met die proxy wrappers en die aan de buitenkant geen communicatie specifieke kenmerken hebben. Als je het goed opzet, dan kan je zelfs eenvoudig wisselen door een andere implementatie achter een proxy interface te plakken.

Gebruik maken van proxies heeft dus niets te maken met de keuze van communicatie.

  • JeroenTheStig
  • Registratie: Mei 2000
  • Laatst online: 21:41
oke, jbuilder eraf geknald, ook de enterprise server. Daarna jbuilder opnieuw geinstalleerd, en klaar. Nu doet ie het dus.

thanx voor de hulp!
Pagina: 1