| /* |
| * Copyright (c) 2017, 2018 Oracle and/or its affiliates. All rights reserved. |
| * |
| * This program and the accompanying materials are made available under the |
| * terms of the Eclipse Public License v. 2.0, which is available at |
| * http://www.eclipse.org/legal/epl-2.0. |
| * |
| * This Source Code may also be made available under the following Secondary |
| * Licenses when the conditions for such availability set forth in the |
| * Eclipse Public License v. 2.0 are satisfied: GNU General Public License, |
| * version 2 with the GNU Classpath Exception, which is available at |
| * https://www.gnu.org/software/classpath/license.html. |
| * |
| * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 |
| */ |
| |
| // HelloServer.java |
| |
| import HelloApp.*; |
| import org.omg.CosNaming.*; |
| import org.omg.CosNaming.NamingContextPackage.*; |
| import org.omg.CORBA.*; |
| import org.omg.PortableServer.*; |
| import org.omg.PortableServer.POA; |
| |
| import java.util.Properties; |
| |
| class HelloImpl extends HelloPOA { |
| private ORB orb; |
| |
| public void setORB(ORB orb_val) { |
| orb = orb_val; |
| } |
| |
| // implement sayHello() method |
| public String sayHello() { |
| return "\nHello world !!\n"; |
| } |
| |
| // implement shutdown() method |
| public void shutdown() { |
| orb.shutdown(false); |
| } |
| } |
| |
| |
| public class HelloServer { |
| |
| public static void main(String args[]) { |
| try{ |
| // create and initialize the ORB |
| ORB orb = ORB.init(args, null); |
| |
| // get reference to rootpoa & activate the POAManager |
| POA rootpoa = POAHelper.narrow(orb.resolve_initial_references("RootPOA")); |
| rootpoa.the_POAManager().activate(); |
| |
| // create servant and register it with the ORB |
| HelloImpl helloImpl = new HelloImpl(); |
| helloImpl.setORB(orb); |
| |
| // get object reference from the servant |
| org.omg.CORBA.Object ref = rootpoa.servant_to_reference(helloImpl); |
| Hello href = HelloHelper.narrow(ref); |
| |
| // get the root naming context |
| // NameService invokes the name service |
| org.omg.CORBA.Object objRef = |
| orb.resolve_initial_references("NameService"); |
| // Use NamingContextExt which is part of the Interoperable |
| // Naming Service (INS) specification. |
| NamingContextExt ncRef = NamingContextExtHelper.narrow(objRef); |
| |
| // bind the Object Reference in Naming |
| String name = "Hello"; |
| NameComponent path[] = ncRef.to_name( name ); |
| ncRef.rebind(path, href); |
| |
| System.out.println("HelloServer ready and waiting ..."); |
| |
| // wait for invocations from clients |
| orb.run(); |
| } |
| |
| catch (Exception e) { |
| System.err.println("ERROR: " + e); |
| e.printStackTrace(System.out); |
| } |
| |
| System.out.println("HelloServer Exiting ..."); |
| |
| } |
| } |
| |
| |