1 Helloサーバ
ここでサーバは最初に、パラメータとして"NameService"を持つORB.resolve_initial_referencesメソッドを使用して、ルートNamingContextを取得します。その後、Nameを作成し、オブジェクト参照をhelloオブジェクトに発行します。Hello Worldレッスンでは、CORBAオブジェクトを期待するAPIで使用するには、あらかじめhelloサーバントのスタブを取得する必要があることを学習しました。
package cosNaming; import util.Util; import helloWorld2.Hello; import helloWorld2.HelloImpl; import org.omg.CORBA.ORB; import org.omg.CORBA.Object; import org.omg.CosNaming.NameComponent; import org.omg.CosNaming.NamingContext; import org.omg.CosNaming.NamingContextHelper; import javax.rmi.PortableRemoteObject; public class Server { public static void main(String[] args) { | try { | | | | // create the jBroker ORB | | ORB orb = ORB.init(args, null); | | | | // create a servant | | Hello hello = new HelloImpl(); | | | | // get the root of the NameService | | NamingContext root = NamingContextHelper.narrow( | | orb.resolve_initial_references("NameService")); | | | | // publish the hello object reference | | NameComponent nc = new NameComponent("hello", ""); | | NameComponent[] name = new NameComponent[] { nc }; | | root.rebind(name, (Object) PortableRemoteObject.toStub(hello)); | | | | // wait for invocations | | System.out.println("waiting for invocations ..."); | | orb.run(); | | | } catch (Exception ex) { | | ex.printStackTrace(); | } } }
package cosNaming; import util.Util; import helloWorld2.Hello; import org.omg.CORBA.ORB; import org.omg.CosNaming.NameComponent; import org.omg.CosNaming.NamingContext; import org.omg.CosNaming.NamingContextHelper; import javax.rmi.PortableRemoteObject; public class Client { public static void main(String[] args) { | try { | | | | // create the jBroker ORB | | ORB orb = ORB.init(args, null); | | | | // get the root of the NameSpace | | NamingContext root = NamingContextHelper.narrow( | | orb.resolve_initial_references("NameService")); | | | | // get the hello object from the NameService | | NameComponent nc = new NameComponent("hello", ""); | | NameComponent[] name = new NameComponent[] { nc }; | | Hello hello = (Hello) root.resolve(name); | | | | // invoke method on the object | | System.out.println(hello.sayHello()); | | | } catch (Exception ex) { | | ex.printStackTrace(); | } } }
package cosNaming; import java.awt.Graphics; import org.omg.CORBA.ORB; import org.omg.CosNaming.NameComponent; import org.omg.CosNaming.NamingContext; import org.omg.CosNaming.NamingContextHelper; import helloWorld2.Hello; public class helloApplet extends java.applet.Applet { private String _message = ""; public void init() { | try { | | | | // create the jBroker ORB | | ORB orb = ORB.init(this, null); | | | | // get the root of the NameSpace | | NamingContext root = NamingContextHelper.narrow( | | orb.resolve_initial_references("NameService")); | | | | // get the hello object from the NameService | | NameComponent nc = new NameComponent("hello", ""); | | NameComponent[] name = new NameComponent[] { nc }; | | Hello hello = (Hello) root.resolve(name); | | | | // invoke method on the object | | _message = hello.sayHello(); | | | } catch (Exception ex) { | | ex.printStackTrace(); | } } public void paint(Graphics g) { | g.drawString(_message, 25, 50); } }
Copyright © 2000-2003, Novell, Inc.All rights reserved. |