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. |