1 public org.omg.CORBA.Object initCORBA(String identity) 2 throws java.net.MalformedURLException, java.io.IOException { 3 java.net.URL url= this.getDocumentBase(); //get URL of webserver 4 // create a request to the webserver 5 String urlname= new String(url.getProtocol()+"://"+ 6 url.getHost()+":"+ 7 String.valueOf(url.getPort())+"/"+ 8 identity+".ior"); 9 java.net.URL urlIOR= new java.net.URL(urlname); 10 java.net.URLConnection urlCon= urlIOR.openConnection(); 11 // get the answer from the webserver 12 java.io.BufferedReader in = new java.io.BufferedReader( 13 new java.io.InputStreamReader(urlCon.getInputStream())); 14 String inputLine; 15 String ior=new String(); 16 while ((inputLine = in.readLine()) != null) //read IOR 17 ior=ior.concat(inputLine); 18 in.close(); 19 // initialize the orb and prevent 20 // connecting visigenic's gatekeeper 21 java.util.Properties prop= new java.util.Properties(); 22 prop.put("ORBdisableLocator","true"); 23 org.omg.CORBA.ORB orb = org.omg.CORBA.ORB.init(this,prop); 24 org.omg.CORBA.Object obj= orb.string_to_object(ior); 25 return obj; 26 }In den Zeilen 3 bis 10 wird eine URL erzeugt und vom Webserver-Agenten angefordert (Abb. Schritt (1)), die folgendes, festgelegte Format hat:
Das Applet darf diesen Webserver kontaktieren, da es von diesem Webserver auch geladen wurde. Der Webserver sendet daraufhin die IOR des IPRouting-Agenten im Stringformat (Abb. Schritt (4),vgl. 6.5.1 und 6.5.4). Die IOR wird in Zeile 16 und 17 ausgelesen. Der ORB wird mit dem Applet selbst, angezeigt durch this und einem Properties-Objekt initialisiert (Zeile 23). Dabei muß sichergestellt werden, daß der ORB von Visigenic nicht versucht den Gatekeeper (vgl. [Vis97]) zu kontaktieren. Abschließend wird aus der IOR im Stringformat in eine CORBA-Objektreferenz umgewandelt (Zeile 24).