01: /*
02: * Copyright (C) The MX4J Contributors.
03: * All rights reserved.
04: *
05: * This software is distributed under the terms of the MX4J License version 1.0.
06: * See the terms of the MX4J License in the documentation provided with this software.
07: */
08:
09: package mx4j.examples.remote.rmi.iiop;
10:
11: import javax.management.Attribute;
12: import javax.management.MBeanServer;
13: import javax.management.MBeanServerFactory;
14: import javax.management.ObjectName;
15: import javax.management.remote.JMXConnectorServer;
16: import javax.management.remote.JMXConnectorServerFactory;
17: import javax.management.remote.JMXServiceURL;
18:
19: /**
20: * This example shows the how to setup a JSR 160 connector server over IIOP, the CORBA
21: * protocol.
22: * It is very similar to the simple example also present in these examples, except
23: * that it uses the IIOP protocol instead of native RMI's one, called JRMP.
24: *
25: * @version $Revision: 1.1 $
26: */
27: public class Server {
28: public static void main(String[] args) throws Exception {
29: // The MBeanServer
30: MBeanServer server = MBeanServerFactory.createMBeanServer();
31:
32: // Register and start the tnameserv MBean, needed by JSR 160 RMIConnectorServer over IIOP
33: // You can also start the new JDK 1.4 'orbd' daemon, but you should do so externally
34: // as there are no MBeans that wrap it.
35: ObjectName namingName = ObjectName
36: .getInstance("naming:type=tnameserv");
37: server.createMBean("mx4j.tools.naming.CosNamingService",
38: namingName, null);
39: // Standard port for the COS naming service is 900, but that's a restricted port on Unix/Linux systems
40: int namingPort = 1199;
41: server.setAttribute(namingName, new Attribute("Port",
42: new Integer(namingPort)));
43: server.invoke(namingName, "start", null, null);
44:
45: String jndiPath = "/jmxconnector";
46: // Note how the JMXServiceURL specifies 'iiop' as protocol for both the
47: // JMXConnectorServer (the first), to indicate the protocol of the JMXConnectorServer,
48: // and for the naming server (the second), to indicate that this is not the rmiregistry
49: // but the COS naming service.
50: JMXServiceURL url = new JMXServiceURL(
51: "service:jmx:iiop://localhost/jndi/iiop://localhost:"
52: + namingPort + jndiPath);
53:
54: // Create and start the RMIConnectorServer over IIOP
55: JMXConnectorServer connectorServer = JMXConnectorServerFactory
56: .newJMXConnectorServer(url, null, server);
57: connectorServer.start();
58:
59: System.out.println("Server up and running");
60: }
61: }
|